处理SmallDateTime数据类型时的DATEADD

时间:2015-08-04 20:33:48

标签: sql-server tsql dateadd

我想要完成的是选择前一天创建的表中的所有记录 - 并且记录作为'smalldatetime'存储在表中,因此它还包括创建记录的时间。 / p>

CreatedDateTime

如果我在WHERE子句中使用了DATEADD函数,那么我没有返回我知道不正确的记录。

Appt.CreatedDateTime = DATEADD(DAY, -1, GETDATE())

如何删除时间戳以查找前一天创建的所有记录?

谢谢,

1 个答案:

答案 0 :(得分:3)

你有几个选择。您可以将列投射为DATE,也可以进行日期数学运算。

where Appt.CreatedDateTime >= dateadd(day, datediff(day, 0, getdate()) - 1, 0) --beginning of yesterday
    and Appt.CreatedDateTime < dateadd(day, datediff(day, 0, getdate()), 0) --beginning of today

OR

CAST(Appt.CreatedDateTime as DATE) = DATEADD(DAY, -1, GETDATE())