在选择查询中使用相对日期

时间:2016-06-15 10:29:59

标签: sql sql-server

我试图在查询中使用相对日期。从搜索中我已经看到了两种方法(肯定还有更多),但是对我来说都不起作用,我可以在2016-06-14的表格中看到数据

select * from tblMy where DatePrice = GETDATE() - 1

select * from tblMy where DatePrice = DATEADD(DAY, -1, GETDATE())

1 个答案:

答案 0 :(得分:1)

这是因为GETDATE()(尽管它的名字)有一个时间组件。因此,如果DatePrice没有时间组件,则它们仅在午夜时分才匹配。如果DatePrice确实有时间组件,那么它们几乎永远不会匹配。

您可以使用:

where DatePrice = CAST(DATEADD(DAY, -1, GETDATE()) as DATE)

或者,在包含或不包含时间组件的版本安全中:

where DatePrice >= CAST(DATEADD(DAY, -1, GETDATE()) as DATE) AND
      DatePrice < CAST(GETDATE() as DATE)