SQL 服务器上个月的最后一天

Last day of last month in SQL Server

我需要以“2017-05-31”的格式在 SQL 服务器中获取上个月的最后一天。有谁知道如何为此编写查询?

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

select eomonth(dateadd(month, -1, getdate())

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

select dateadd(day, -day(getdate()), getdate())

哦,然后转换为日期以摆脱时间部分:

select cast(dateadd(day, -day(getdate()), getdate()) as date)