我有以下sql server WHERE
子句:
WHERE(DateCreated> = CONVERT(datetime,GETDATE(),111) - 1)
这会得到日期(今天是2015-06-09)2015-06-08
。我需要为此添加时间,例如24H格式的2015-06-08 04:00:00
。每次执行SQL命令时,时间总是相同的蝙蝠,它应该只是从昨天凌晨4点到当前日期和时间。
如何实现这一目标?
答案 0 :(得分:4)
试试这个:
WHERE DateCreated >= dateadd(d, datediff(d, 1, getdate()), '04:00')
答案 1 :(得分:0)
我认为你在寻找:
WHERE (DateCreated >= DATEADD(HOUR, 4,
CONVERT(datetime,
DATEADD(DAY, -1, CONVERT(date, GETDATE()) )
)
)
)
直接转换为DATE
将消除照顾小时部分的麻烦。在此之后,使用DATEADD
-1
将在1天前完成。
完成此步骤后,只需将其转换回日期时间即可创建日期的时间戳部分,默认为00:00:00.000
。
最后,只需在此开始日期添加4小时,这将始终为您提供凌晨4点。