我正在尝试使用我的datetime
变量创建一个过滤器,以查看一天中某段时间内发生的任何事情,该变量的日期和时间格式如下:
2009-07-30 16:05:15
如何创建一个WHERE子句,让我查看该变量的时间戳在某些小时之间的任何条目,例如第二天的17:00:00到07:00:00。
Imagine将是两个独立的条款
> 17:00:00 OR<分别是07:00:00
答案 0 :(得分:2)
使用DATEPART
功能
WHERE DATEPART(hh, [Date Column]) between 7 and 17
或
WHERE NOT DATEPART(hh, [Date Column]) between 7 and 17
过夜
答案 1 :(得分:1)
使用datepart()
功能可以解决您的特定问题,因为它基于小时数。更通用的解决方案是处理时间问题。例如:
where cast(col as time) >= '17:00:00' and cast(col as time) < '17:30:00'
答案 2 :(得分:0)
你可以像这样过滤:
where time_field_name between first_value and last_value
试试这个:
SELECT FORMAT(CAST(time_field_name as datetime2(0)), N'HH:mm:ss')
FROM time_table
where FORMAT(CAST(time_field_name as datetime2(0)), N'HH:mm:ss') between '7:00:00' and '17:00:00'