从datetime减去一天

时间:2013-03-26 07:54:32

标签: sql sql-server datetime

我有一个查询来获取2个日期时间之间的日期差异:

SELECT DATEDIFF(DAY, @CreatedDate , GETDATE())

Ex :

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

我需要有一个像这样的查询工作,它将从创建的日期减去一天:

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

9 个答案:

答案 0 :(得分:108)

试试这个

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

OR

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

答案 1 :(得分:35)

我不确定你究竟想要做什么,但我认为这个SQL函数会对你有所帮助:

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

以上内容会为您提供2013-03-31 16:25:00.250

它会将您带回一天,并按照任何标准日期时间或日期格式工作。

尝试运行此命令,看看它是否能满足您的需求:

SELECT DATEADD(day,-1,@CreatedDate)

答案 2 :(得分:28)

简单地从今天的日期减去一天:

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

(原帖使用-7且不正确)

答案 3 :(得分:18)

显然,您可以从日期时间中减去所需的天数。

SELECT GETDATE() - 1

2016-12-25 15:24:50.403

答案 4 :(得分:5)

这应该有用。

select DATEADD(day, -1, convert(date, GETDATE()))

答案 5 :(得分:1)

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

答案 6 :(得分:1)

试试这个,这可能会对你有所帮助

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

答案 7 :(得分:1)

老实说,我只是使用:

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

从中提供YYYYMMDD和减1。

或更正确

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

昨天的日期。

Getdate()替换为您的值OrderDate

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

应该这样做。

答案 8 :(得分:-1)

你可以试试这个。

时间戳= 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

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