admin 管理员组

文章数量: 1184232


2024年3月6日发(作者:session是什么)

sql 上月最后一天最简洁的写法

SQL语言中获取上月最后一天的方法有多种,下面将介绍其中几种常见的方式。

方法一:使用DATEADD和DATEDIFF函数

使用DATEADD函数结合DATEDIFF函数,可以实现计算上月最后一天的功能。DATEADD函数可以在指定的日期上增加或减少一定的时间间隔,DATEDIFF函数可以计算两个日期之间的时间间隔。

示例代码如下:

```

SELECT DATEADD(s,-1,DATEADD(MONTH,

DATEDIFF(MONTH,0,GETDATE()),0))

```

上述代码中,首先使用DATEDIFF函数计算出当前日期与1900年1月1日相差的月份数,再将该月数加到1900年1月1日上,即可得到

本月1日的日期。然后使用DATEADD函数在本月1日的基础上减去1秒的时间间隔,即可得到上月最后一天的日期。

方法二:使用EOMONTH函数

EOMONTH函数是SQL Server 2012及以上版本中新增的函数,它可以返回指定日期的月末日期。

示例代码如下:

```

SELECT EOMONTH(GETDATE(), -1)

```

上述代码中,EOMONTH函数的第一个参数为当前日期,第二个参数为需要调整的月份数,负数表示向前调整,正数表示向后调整。设置第二个参数为-1,即可获得上月最后一天的日期。

方法三:使用DATEPART和DATEADD函数结合

使用DATEPART函数获取当前日期的月份,然后使用DATEADD函数在当前日期的基础上减去当月天数的时间间隔,即可得到上月最后一天的日期。

示例代码如下:

```

SELECT DATEADD(DAY, -DATEPART(DAY, GETDATE()), GETDATE())

```

上述代码中,首先使用DATEPART函数获取当前日期的天数,然后使用DATEADD函数在当前日期的基础上减去该天数的时间间隔,即可获得上月最后一天的日期。

综上所述,以上是使用SQL语言获取上月最后一天的几种常见方式。根据实际需求和使用的数据库管理系统版本,可以选择灵活运用这些方法来实现所需功能。


本文标签: 函数 使用 时间 调整