从date时间减去一天

我有一个查询来获取datetime之间的date差异为:

SELECT DATEDIFF(DAY, @CreatedDate , GETDATE()) Ex : SELECT DATEDIFF(DAY, '2013-03-13 00:00:00.000' , GETDATE()) 

我需要有一个这样的查询工作,这将从创build的一天中减去一天:

 SELECT DATEDIFF(DAY, **@CreatedDate- 1** , GETDATE()) 

尝试这个

 SELECT DATEDIFF(DAY, DATEADD(day, -1, '2013-03-13 00:00:00.000'), GETDATE()) 

要么

 SELECT DATEDIFF(DAY, DATEADD(day, -1, @CreatedDate), GETDATE()) 

我不确定你想要做什么,但是我认为这个SQL函数可以帮助你:

 SELECT DATEADD(day,-1,'2013-04-01 16:25:00.250') 

以上会给你2013-03-31 16:25:00.250

它将您带回一整天,并以任何标准的date时间或date格式进行工作。

尝试运行这个命令,看看它是否给你你在找什么:

 SELECT DATEADD(day,-1,@CreatedDate) 

简单地从今天的date减去一天:

 Select DATEADD(day,-1,GETDATE()) 

(原来的post使用-7,是不正确的)

显然你可以从date时间中减去你想要的天数。

 SELECT GETDATE() - 1 2016-12-25 15:24:50.403 

这应该工作。

 select DATEADD(day, -1, convert(date, GETDATE())) 
 SELECT DATEDIFF ( DAY, DATEDIFF(DAY, @CreatedDate, -1), GETDATE()) 

试试这个,可能这会帮助你

 SELECT DATEDIFF(DAY, DATEADD(DAY,-1,'2013-03-13 00:00:00.000') , GETDATE()) 

说实话我只是使用:

 select convert(nvarchar(max), GETDATE(), 112) 

这给了YYYYMMDD并从中减去一个。

或者更正确

 select convert(nvarchar(max), GETDATE(), 112) - 1 

为昨天的date。

用您的值OrderDatereplaceGetdate()

 select convert(nvarchar (max),OrderDate,112)-1 AS SubtractDate FROM Orders 

应该这样做。

你可以试试这个

Timestamp = 2008-11-11 13:23:44.657;

 SELECT DATE_SUB(OrderDate,INTERVAL 1 DAY) AS SubtractDate FROM Orders 

输出:2008-11-10 13:23:44.657

我希望,这将有助于解决您的问题。