SQL计算既定日期的月初第一天和月末最后一天
时间: 2024-10-17 15:14:19 浏览: 31
计算本月和上个月的第一天和最后一天(SQL Server)
在SQL中,计算特定日期的月初第一天和月末最后一天通常涉及到使用`DATE_TRUNC`或`DATEADD`函数,这取决于你使用的数据库管理系统。以下是两种常见情况下的示例:
1. **MySQL** 或 **PostgreSQL**: 使用 `DATE_TRUNC` 函数,可以轻松地获取月份的第一天和最后一天。
```sql
-- 获取指定日期的月初第一天
SELECT DATE_TRUNC('month', '2023-03-15') AS first_day;
-- 获取指定日期的月末最后一天
SELECT DATE_TRUNC('day', '2023-03-15') + INTERVAL 1 DAY - INTERVAL '1 second' AS last_day;
```
2. **Oracle**: 使用 `TRUNC` 和 `ADD_MONTHS` 函数。
```sql
-- 获取指定日期的月初第一天
SELECT TRUNC(SYSDATE, 'MONTH') AS first_day;
-- 获取指定日期的月末最后一天
SELECT ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), 1) - 1 AS last_day;
```
3. **SQL Server**: 使用 `DATEPART` 和 `DATEADD`。
```sql
-- 获取指定日期的月初第一天
SELECT DATEADD(month, DATEDIFF(month, 0, '2023-03-15'), 0) AS first_day;
-- 获取指定日期的月末最后一天
SELECT DATEADD(day, -1, DATEADD(month, DATEDIFF(month, 0, '2023-03-15') + 1, 0)) AS last_day;
```
阅读全文