日期之间的SQL查询不适用于“AM到PM”

时间:2018-03-28 08:35:33

标签: sql-server

SELECT GETDATE() StartDate

2018-03-28 10:24:44.747

SELECT GETDATE()+15 EndDate

2018-04-12 10:24:44.747

Login日期类型为DateTime

SELECT * FROM employee WHERE Logindate BETWEEN GETDATE()  AND GETDATE()+15

我有大约300条符合过滤条件的记录,但我在这里只看到60条记录

如何在“AM”到“PM”之间检查Logindate

1 个答案:

答案 0 :(得分:0)

GETDATE()的结果是24小时内的日期时间格式(因此您看不到上午或下午)。

如果您想查看完整的日期,请使用DATE格式的比较,甚至更好地截断您的GETDATE()结果时间组件。

select 
    * 
from 
    employee 
where 
    Logindate >= CONVERT(DATE, GETDATE()) and 
    Logindate < CONVERT(DATE, DATEADD(DAY, 16, GETDATE())

请注意,我正在添加16天,但过滤器低于(不包括相等)。