选择所有比7天更"年轻"的记录

use*_*384 5 sql select date-range

我想选择所有的记录[Orders]是有[Submissiondate]超过7天以下.

我完全难过了.这是我正在执行的查询:

SELECT * FROM [Orders] WHERE ([SubmissionDate] < @SubmissionDate)
Run Code Online (Sandbox Code Playgroud)

不行.

And*_*y M 5

如果你的意思是你想与行SubmissionDate之间@SubmissionDate@SubmissionDate - 7 days,那么这就是我将如何实现这在Transact-SQL:

WHERE [SubmissionDate] BETWEEN DATEADD(DAY, -7, @SubmissionDate)
                           AND @SubmissionDate
Run Code Online (Sandbox Code Playgroud)

注意BETWEEN暗示>=<=.如果您需要严格的不等式,请将其设为:

WHERE [SubmissionDate] > DATEADD(DAY, -7, @SubmissionDate)
  AND [SubmissionDate] < @SubmissionDate
Run Code Online (Sandbox Code Playgroud)


cod*_*biz 0

您也可以尝试这个DATEDIFF

SELECT * FROM [Orders] WHERE  datediff(d,SubmissionDate,GETDATE()) > 7
Run Code Online (Sandbox Code Playgroud)

其中 GetDate() 是今天的日期,d相差天数

select datediff(d,'2012/06/23',GETDATE())
Run Code Online (Sandbox Code Playgroud)

应该给你 7,因为这是 7 天前