sql server 获得上月最后一天
时间: 2023-08-13 07:06:35 浏览: 141
你可以使用以下 SQL 查询来获取上个月的最后一天:
```
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))
```
这个查询首先获取当前日期,然后使用 `DATEDIFF` 函数计算出这一年的月数,使用 `DATEADD` 函数将计算出的月数加到基准日期(1900年1月1日)上,然后再次使用 `DATEADD` 函数在月份的基础上添加一天,并减去一秒钟,以获取上个月的最后一天。
相关问题
sql 查询上月最后一天
要查询上个月的最后一天,可以根据不同的数据库管理系统(DBMS)使用不同的SQL语句。以下是一些常见的数据库系统中的实现方式:
### MySQL
在MySQL中,可以使用`LAST_DAY`函数结合`DATE_SUB`和`INTERVAL`来实现:
```sql
SELECT LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) AS last_day_of_previous_month;
```
### PostgreSQL
在PostgreSQL中,可以使用`DATE_TRUNC`和`INTERVAL`来实现:
```sql
SELECT (DATE_TRUNC('month', CURRENT_DATE) - INTERVAL '1 day')::date AS last_day_of_previous_month;
```
### SQL Server
在SQL Server中,可以使用`EOMONTH`函数结合`DATEADD`来实现:
```sql
SELECT EOMONTH(DATEADD(MONTH, -1, GETDATE())) AS last_day_of_previous_month;
```
### Oracle
在Oracle中,可以使用`LAST_DAY`函数结合`ADD_MONTHS`来实现:
```sql
SELECT LAST_DAY(ADD_MONTHS(SYSDATE, -1)) AS last_day_of_previous_month FROM dual;
```
这些语句都会返回上个月的最后一天,具体选择哪种方式取决于你所使用的数据库系统。
sql server 中求上月月末
可以使用下面的 SQL 语句来求上个月月末的日期:
```sql
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))
```
该语句的解释如下:
1. `DATEDIFF(m,0,GETDATE())`:计算当前日期与 1900 年 1 月 1 日之间的月份数,即当前月份减去 1。
2. `DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)`:将当前日期的月份设置为上个月,并将日期设置为该月的第一天,即上个月的第一天。
3. `DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))`:将上个月的第一天减去 1 秒,即得到上个月的最后一天。
注意:该方法计算的月份是以当前系统时间为准的。如果需要计算指定月份的上个月月末,可以将 `GETDATE()` 替换为对应的日期值。
阅读全文
相关推荐














