以 YYYY-MM-DD 格式获取上个月的第一天

Get first day of previous month in YYYY-MM-DD format

如何获取 yyyy-mm-dd 格式的上个月的第一天。

我试过了

SELECT CONVERT(VARCHAR(10), DATEADD(s, -1, DATEADD(mm, DATEDIFF(m, 0, GETDATE()), 0)), 120)  

您可以为此使用 EOMONTH 函数。此函数应该 return 月底,因此在结果中添加一天:

SELECT DATEADD(DAY, 1, EOMONTH(GETDATE(), -2)) -- returns 2019-07-01 on 2019-08-28 01:02:03.004

将上面的表达式包裹在 FORMAT(..., 'yyyy-MM-dd') 中以 格式化 结果。

这会起作用:

SELECT CONVERT(VARCHAR(10),DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)),23)

输出:

2019-07-31