从datetime减去一天

Jam*_*mes 97 sql sql-server datetime

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

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

Ex :

SELECT DATEDIFF(DAY, '2013-03-13 00:00:00.000' , GETDATE())
Run Code Online (Sandbox Code Playgroud)

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

SELECT DATEDIFF(DAY, **@CreatedDate- 1** , GETDATE())
Run Code Online (Sandbox Code Playgroud)

yog*_*ogi 112

试试这个

SELECT DATEDIFF(DAY,  DATEADD(day, -1, '2013-03-13 00:00:00.000'), GETDATE())
Run Code Online (Sandbox Code Playgroud)

要么

SELECT DATEDIFF(DAY,  DATEADD(day, -1, @CreatedDate), GETDATE())
Run Code Online (Sandbox Code Playgroud)

  • 根据 Philip Rego 的回答,您可以使用 SELECT GETDATE() - 1 从日期中减去天数。 (4认同)
  • 稍微小心负1。只要大家都知道它只适用于DateTime。它不适用于日期数据类型。CAST(GetDate() - 1 AS DATE) /* 有效 */, CAST(GetDate() AS DATE) - 1 /* 错误 */ (3认同)

小智 36

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

SELECT DATEADD(day,-1,'2013-04-01 16:25:00.250')
Run Code Online (Sandbox Code Playgroud)

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

它会将您带回一天,并以任何标准日期时间或日期格式运行.

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

SELECT DATEADD(day,-1,@CreatedDate)
Run Code Online (Sandbox Code Playgroud)


Fox*_*loy 31

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

Select DATEADD(day,-1,GETDATE())
Run Code Online (Sandbox Code Playgroud)

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


Phi*_*ego 20

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

SELECT GETDATE() - 1

2016-12-25 15:24:50.403
Run Code Online (Sandbox Code Playgroud)


sam*_*gun 6

这应该工作。

select DATEADD(day, -1, convert(date, GETDATE()))
Run Code Online (Sandbox Code Playgroud)