Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL获取当月前3个月的第1天_Sql_Sql Server_Date - Fatal编程技术网

SQL获取当月前3个月的第1天

SQL获取当月前3个月的第1天,sql,sql-server,date,Sql,Sql Server,Date,我正在尝试选择当前日期前3个月的每月第一天 例如,如果当前日期为:“2015-11-08” 我的结果应该是:“2015-08-01” 我更喜欢yyyy-mm-dd格式 我一开始试过这个,但没有成功: SELECT DATEADD(dd, -DAY('2015-09-01') + 1, @today) 我尝试了很多东西,但似乎无法破解它,任何建议或帮助将不胜感激。提前感谢逻辑很简单: 从日期中减去月日减去1天 减去三个月 在SQL Server中: select dateadd(month,

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

例如,如果当前日期为:“2015-11-08” 我的结果应该是:“2015-08-01”

我更喜欢yyyy-mm-dd格式

我一开始试过这个,但没有成功:

SELECT DATEADD(dd, -DAY('2015-09-01') + 1, @today)
我尝试了很多东西,但似乎无法破解它,任何建议或帮助将不胜感激。提前感谢

逻辑很简单:

  • 从日期中减去月日减去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)

请用您正在使用的数据库标记您的问题。同时,展示你尝试过的。不用担心,去做。你尝试过什么,失败在哪里?(我对最后一部分有自己的想法)我一直在尝试使用“SELECT DATEADD(dd,-DAY('2015-09-01')+1,@today)”这对我帮助很大,效果非常好。谢谢Gordon,我没有遇到DAY函数