小编典典

SQL获取本月前三个月的月份的第一天

sql

我正在尝试选择当前日期前三个月的每月的第一天。

因此,例如,如果当前日期是:“ 2015-11-08”,我的结果将是:“ 2015-08-01”

我希望这是yyyy-mm-dd格式。

我从一开始就尝试过,但是没有运气:

SELECT DATEADD(dd, -DAY('2015-09-01') + 1, @today)

我已经尝试了很多事情,但似乎无法破解,任何建议或帮助都将不胜感激。先感谢您


阅读 402

收藏
2021-04-28

共1个答案

小编典典

逻辑很简单:

  • 减去当月的日期减去日期后的1天
  • 减去三个月

在SQL Server中:

select dateadd(month, -3, dateadd(day, 1 - day(dte), dte))

对于当前日期:

select cast(dateadd(month, -3, dateadd(day, 1 - day(getdate()), getdate())) as date)

并作为一个字符串:

select convert(varchar(10),
               dateadd(month, -3, dateadd(day, 1 - day(getdate()), getdate())),
               120)
2021-04-28