Sql 在选择查询中使用相对日期
我试图在查询中使用相对日期。通过搜索,我看到了两种方法(当然还有更多),但这两种方法都不适用于我,我可以在2016-06-14的表格中看到数据Sql 在选择查询中使用相对日期,sql,sql-server,Sql,Sql Server,我试图在查询中使用相对日期。通过搜索,我看到了两种方法(当然还有更多),但这两种方法都不适用于我,我可以在2016-06-14的表格中看到数据 select * from tblMy where DatePrice = GETDATE() - 1 select * from tblMy where DatePrice = DATEADD(DAY, -1, GETDATE()) 这是因为GETDATE()(尽管名称不同)有一个时间组件。因此,如果DatePrice没有时间成分,它们只在午夜匹配
select * from tblMy where DatePrice = GETDATE() - 1
select * from tblMy where DatePrice = DATEADD(DAY, -1, GETDATE())
这是因为
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)
其中DatePrice>=CAST(DATEADD(DAY,-1,GETDATE())作为日期)和
DatePrice
这是因为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)
其中DatePrice>=CAST(DATEADD(DAY,-1,GETDATE())作为日期)和
DatePrice
啊,这很有道理!我刚才看到的桌子上只有一个没有时间成分的日期啊,这是有道理的!我刚才看到的表只有一个没有时间组件的日期“DatePrice”列的数据类型是什么?DatePrice列的数据类型是什么?