【发布时间】:2019-07-15 22:09:12
【问题描述】:
例如,我有一个包含开始日期列的表:
Start Date
2015/01/05
2015/02/08
2016/01/10
2017/02/10
etc...
我正在尝试在我的WHERE 子句中添加基于当前GETDATE() 的一年前的所有记录。
例如,如果今天是 2019 年 7 月并且我运行查询,我希望它运行并给我从 2018 年 7 月到 2019 年 6 月的开始日期。如果我在 2019 年 8 月运行它,我希望它显示从 2018 年 8 月到 2019 年 7 月的开始日期,依此类推。基本上直到当前日期的前一个月。
目前我的 WHERE 子句中有这个:
WHERE start_date between DATEADD(YEAR,-1, GETDATE()) and GETDATE()
但我相信这似乎只提前一年,直到当前日期准确。
我有更好的方法吗?
【问题讨论】:
-
你做的没问题。仔细检查你的输出。
-
如果我想把它放到 GETDATE() 前一个月的位置,我是否需要将第二个 GETDATE() 调整为 DATEADD(MONTH, -1, GETDATE( )) ?
-
你做的没问题。另一件事是,如果您想涵盖从 2018 年 1 月 1 日到 2019 年 7 月 1 日的 7 月。如果不是这样,则您的查询是正确的。
-
这是一个将正确的功能组合在一起的问题。像这些例子:zarez.net/?p=2462
标签: sql sql-server date getdate