我试图在查询中使用相对日期。从搜索中我已经看到了两种方法(肯定还有更多),但是对我来说都不起作用,我可以在2016-06-14的表格中看到数据
select * from tblMy where DatePrice = GETDATE() - 1
select * from tblMy where DatePrice = DATEADD(DAY, -1, GETDATE())
答案 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)