如何在MSSQL中获取上一个月的日期(mssql获取上个月日期)

MSSQL提供多种方法可以获取上一个月的日期,下面我们介绍几种方法;

一、DATEADD()函数

DATEADD()函数用来从指定的日期中添加或减去一定的时间间隔,示例如下:

SELECT DATEADD(Month, -1, GETDATE())

上面的SQL语句将会获取上一个月的日期,DATEADD()函数的参数Month表示以月份计算,-1表示减去一个月,而GETDATE()是一个系统函数,返回当前日期和时间。

二、DATEADD()函数+DAY()函数

如果你想获取上一个月的第一天和最后一天,可以使用DATEADD()函数加上DAY()函数,示例如下:

SELECT DATEADD(dd,-1*DAY(GETDATE()),DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0)),
DATEADD(dd,-1,DATEADD(mm,DATEDIFF(mm,0,GETDATE())+1,0))

上面的SQL语句可以查询出上一个月的第一天和最后一天,DATEDIFF()函数用于计算两个日期之间的时间间隔,第二个参数0表示以最小单位计算(年,月,日),第三个参数也是0,表示从0开始计算。

三、AT TIME ZONE函数

AT TIME ZONE函数用来将时间由一个区域转换为另一个区域,示例如下:

SELECT AT TIME ZONE 'UTC' AS DateTimeUTC, 
CONVERT(VARCHAR(10), AT TIME ZONE 'UTC' AT TIME ZONE 'Eastern Standard Time', 120)
AS DateTimeEST
FROM sys.dm_exec_requests;

上面的SQL语句将会从UTC时间中将当前时间更改为美国东部时间,在获取上一个月的时间时,可以采用AT TIME ZONE函数与DATEADD()函数结合起来使用,获取上个月的第一天和最后一天。

四、CURRENT_TIMESTAMP函数

你还可以使用MSSQL提供的CURRENT_TIMESTAMP函数来获取当前时间戳,只需要在函数中指定一个参数,便可获得上一月的时间戳,示例如下:

SELECT CURRENT_TIMESTAMP(-1 MONTH)

以上就是我们讨论的几种如何在MSSQL中获取上一个月的日期的方法,DATEADD()函数和AT TIME ZONE函数配合起来使用更容易获取某个月的第一天和最后一天。


数据运维技术 » 如何在MSSQL中获取上一个月的日期(mssql获取上个月日期)