SQL Server上个月的最后一天

kkl*_*kkl 0 sql t-sql sql-server date-formatting

我需要在SQL Server中以"2017-05-31"格式获取上个月的最后一天.有谁知道怎么写这个查询?

Gor*_*off 6

没有SQL Server 2010(据我所知).在SQL Server 2012+中,您可以使用EOMONTH():

select eomonth(dateadd(month, -1, getdate())
Run Code Online (Sandbox Code Playgroud)

实际上,在任何版本中,它可能更简单:

select dateadd(day, -day(getdate()), getdate())
Run Code Online (Sandbox Code Playgroud)

哦,然后投射到一个日期摆脱时间组件:

select cast(dateadd(day, -day(getdate()), getdate()) as date)
Run Code Online (Sandbox Code Playgroud)