我正在处理一个查询,我需要提取日期在现在和一年前之间的所有结果。因此,如果明天运行查询,结果将与今天运行的结果略有不同。如果我今天运行它,基本上就像在说“日期在 2015 年 6 月 1 日到 2016 年 6 月 1 日之间”。明天,2015 年 6 月 2 日至 2016 年 6 月 2 日,依此类推。
我想我可以将其格式化为与涉及日期的常规子句相同的格式WHERE。这就是我所拥有的:
WHERE CreateDate BETWEEN (DATEADD(Year,-1,GETDATE()) AND (GetDATE())
Run Code Online (Sandbox Code Playgroud)
首先,我不确定该DATEADD()部分是否是我应该使用的——我只是根据我在另一个论坛上阅读的内容进行了尝试。其次,我有一个红色的波浪线告诉我在 附近有一个语法错误AND。
解决这个问题的最佳方法是什么?
您可以使用DATEADD并且它知道闰年,因此即使在闰年运行,在日期中添加年份也应该是安全的(尽管我仍然更喜欢保持额外的安全并添加天数 - 取决于您希望它在运行时如何表现)闰年)。
语法错误的原因是你的括号。我数了数,有五个人在凝视,但只有四个人闭上眼睛。我想你想要
BETWEEN DATEADD(Year,-1,GETDATE()) AND GetDATE()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21307 次 |
| 最近记录: |