我使用以下内容来获取下个月的第一天:
select DATEADD(m, DATEDIFF(m, -1, getdate()), 0)
但输出是:
2018-12-01 00:00:00.000
预期结果是:
2018-12-01 11:53:30.677
我尝试了各种方法,但都无法获得所需的输出。我使用的是SQL Server 2008。
您可以添加两个datetime
值,一个用于日期,另一个用于时间:
select DATEADD(month, DATEDIFF(month, -1, getdate()), 0) + cast(cast(getdate() as time) as datetime)
我猜您想要当前时间的时间值。
从@date
减去DAY(@date) - 1
天,得到该月的第一天,包括时间。然后添加一个月:
SELECT DATEADD(MONTH, 1, DATEADD(DAY, -DAY(GETDATE()) + 1, GETDATE()))
-- 2018-12-01 04:52:33.403
尝试下面的
select DATEADD(m, DATEDIFF(m, -1, getdate()), 0)+ convert(DATETIME,'11:53:30.677')
在当前时间的情况下,它将低于
select DATEADD(m, DATEDIFF(m, -1, getdate()), 0)+ convert(datetime, convert(time,getdate()))