我们有一个旧的sql脚本,它可以查找前一天的数据。因此,在我们的表中,我们有一个DatePlaced列,我们希望能够从运行时间到前一天获取所有记录。谢谢你的帮助。
where DATEDIFF(DAY,[DatePlaced],GETDATE()) = 1
答案 0 :(得分:6)
这意味着昨天。
今天是2013-07-17
。我运行了以下查询来验证:
select datediff(day,'2013-07-16',getdate()) --returns 1
select datediff(day,'2013-07-18',getdate()) --returns -1
有关详细信息,请参阅the documentation:
DATEDIFF ( datepart , startdate , enddate )
答案 1 :(得分:5)
DECLARE @today DATE = SYSDATETIME();
...
WHERE DatePlaced >= DATEADD(DAY, -1, @today)
AND DatePlaced < @today;
如果您使用的是SQL Server 2005之类的旧版本,那么请改为:
DECLARE @today DATETIME;
SET @today = DATEDIFF(DAY, 0, GETDATE());
...
WHERE DatePlaced >= DATEADD(DAY, -1, @today)
AND DatePlaced < @today;