我一直convert(varchar,datefield,112)在每个日期字段上执行一次我在SQL服务器中的'之间'查询中使用,以确保我只根据日期时间字段的时间部分计算日期而不会丢失任何日期.
现在,我听说转换器不可索引,并且在SQL Server 2005中有更好的方法来比较查询中日期时间的日期部分,以确定日期是否属于某个范围.
做这样的事情的最佳,可索引的方法是什么:
select * from appointments
where appointmentDate>='08-01-2008' and appointmentDate<'08-15-2008'
Run Code Online (Sandbox Code Playgroud) 我有一张商店节拍时间表.它与下面的"day_shift(1)"和"night_shift(0)"复合.

如果我把当前时间(通过使用GETDATE()函数).我需要知道当前时间是"day(1)"或"night(0)".我的查询是这样的.
SELECT [day_shift_flag]
FROM [company_working_time]
WHERE GETDATE() BETWEEN [start_time] AND[end_time]
Run Code Online (Sandbox Code Playgroud)
但它找不到,因为从GETDATE()收到的日期不是'1900-01-01'如何比较唯一的时间而忽略日,月,年.我该怎么办?