运行以下内容:
GETDATE() AND datepart(hour, time) >= 5 AND datepart(hour, time) < 18
这会让我早上5点到下午5点吗?另外,下午5点到凌晨5点还有什么特别的,午夜时分。是否需要两个陈述,1个在午夜之前,1个从12:00到凌晨5点?
我运行以下,有时返回为null。 这有意义吗??
WHERE time >= GETDATE() AND datepart(hour, time) >= 5 AND datepart(hour, time) < 18
答案 0 :(得分:0)
如果您只想验证当天的时间,如果它在凌晨5点到下午6点之间存在,那么您可以尝试这样的事情。
declare @d datetime = GETDATE()
select DATEPART(hh, @d)
where @d >= GETDATE() and datepart(hour, @d) >= 5 AND datepart(hour, @d) < 18;
然后在下午1点,它给出了13。
如果是前一天,它不会显示任何内容,例如:
set @d = DATEADD(dd, -1, @d)
select DATEPART(hh, @d)
where @d >= GETDATE() and datepart(hour, @d) >= 5 AND datepart(hour, @d) < 18;
我的两分钱!