如何将GETDATE()转换为时间忽略日,月和年

时间:2014-12-04 04:43:43

标签: sql sql-server getdate

我有一张商店节拍时间表。它与" day_shift(1)"和" night_shift(0)"如下。

enter image description here

如果我输入当前时间(通过使用GETDATE()函数)。 我需要知道现在的时间是" day(1)"或者"晚上(0)"。我的查询是这样的。

SELECT [day_shift_flag]   
FROM  [company_working_time]
WHERE   GETDATE() BETWEEN [start_time] AND[end_time]

但它无法找到,因为从GETDATE()收到的日期不是' 1900-01-01' 如何比较唯一的时间并忽略日,月,年。 我该怎么办?

2 个答案:

答案 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])