以yyyy-mm-dd格式获取上个月的最后一天

时间:2019-08-27 12:22:06

标签: sql sql-server tsql datetime sql-date-functions

如何获取yyyy-mm-dd格式的上个月的最后一天?

这是我尝试过的方法,但是我不想显示秒数。仅YYYY-MM-DD:

SELECT DATEADD(s, -1, DATEADD(mm, DATEDIFF(m, 0, GETDATE()), 0))

6 个答案:

答案 0 :(得分:3)

EOMONTH函数与FORMAT一起使用:

SELECT FORMAT(EOMONTH(CURRENT_TIMESTAMP, -1), 'yyyy-MM-dd')

以上示例中的-1意味着从参数1中减去1个月(不需要DATEADD)。

答案 1 :(得分:1)

将其转换为仅日期格式

SELECT convert(date,DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)),103)

答案 2 :(得分:1)

这应该有效

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

答案 3 :(得分:0)

尝试一下这个受欢迎的方法:

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

Live demo

答案 4 :(得分:0)

尝试一下:

Select CONVERT(varchar, DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)),23)

答案 5 :(得分:0)

由于较新版本的SQL支持它,因此我将使用它:

SELECT  CONVERT(DATE,EOMONTH(DATEADD(MM,-1,GETDATE())),103)

代码较短,可以完成相同的任务...