我有一张商店节拍时间表。它与" day_shift(1)"和" night_shift(0)"如下。
如果我输入当前时间(通过使用GETDATE()函数)。 我需要知道现在的时间是" day(1)"或者"晚上(0)"。我的查询是这样的。
SELECT [day_shift_flag]
FROM [company_working_time]
WHERE GETDATE() BETWEEN [start_time] AND[end_time]
但它无法找到,因为从GETDATE()收到的日期不是' 1900-01-01' 如何比较唯一的时间并忽略日,月,年。 我该怎么办?
答案 0 :(得分:5)
您可以将DateTime转换为时间数据类型。例如:
SELECT
[day_shift_flag]
FROM [company_working_time]
WHERE
CAST(GETDATE() AS TIME) BETWEEN CAST([start_time] AS TIME) AND CAST([end_time] AS TIME)
答案 1 :(得分:2)
按照以下方式您可以忽略日,月,年
SELECT [day_shift_flag]
FROM [company_working_time]
WHERE DatePart(HH,GETDATE()) BETWEEN DatePart(HH,[start_time]) AND DatePart(HH,[end_time])