sql 获取昨天8.30时间
时间: 2023-10-16 17:09:44 浏览: 197
这里提供两种方法:
1. 使用 DATEADD 函数
```
SELECT DATEADD(hh, 8, DATEADD(dd, DATEDIFF(dd, 0, GETDATE())-1, '1970-01-01 00:00:00')) AS yesterday_8_30
```
解释:
- `GETDATE()` 获取当前时间
- `DATEDIFF(dd, 0, GETDATE())-1` 获取昨天的日期,其中 `DATEDIFF(dd, 0, GETDATE())` 表示当前日期距离 `1970-01-01` 的天数,减去 1 就是昨天的日期
- `DATEADD(dd, DATEDIFF(dd, 0, GETDATE())-1, '1970-01-01 00:00:00')` 将昨天的日期转换为日期时间格式
- `DATEADD(hh, 8, DATEADD(dd, DATEDIFF(dd, 0, GETDATE())-1, '1970-01-01 00:00:00'))` 将昨天的日期时间加上 8 小时,即得到昨天 8:30 的时间
2. 使用 CONVERT 函数
```
SELECT CONVERT(datetime, CONVERT(date, GETDATE()-1) + ' 08:30:00') AS yesterday_8_30
```
解释:
- `GETDATE()-1` 获取昨天的日期时间
- `CONVERT(date, GETDATE()-1)` 将日期时间转换为日期格式
- `CONVERT(datetime, CONVERT(date, GETDATE()-1) + ' 08:30:00')` 将日期格式和时间字符串拼接,再转换为日期时间格式,即得到昨天 8:30 的时间
阅读全文