数据库中查询去年第一天和去年最后一天
时间: 2024-09-12 18:13:33 浏览: 46
在数据库中查询去年第一天和最后一天的具体日期,通常需要考虑当前日期以及SQL的一些内置函数。这取决于你使用的数据库系统,因为它们可能有不同的语法。以下是几种常见数据库系统的示例:
1. **MySQL**:
```sql
SELECT DATE_SUB(CURDATE(), INTERVAL 1 YEAR), LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))
```
这里`CURDATE()`获取当前日期,`INTERVAL 1 YEAR`表示一年前,`DATE_SUB()`用于减去这个时间间隔,而`LAST_DAY()`返回指定日期的最后一天。
2. **SQL Server**:
```sql
SELECT DATEADD(year, -1, GETDATE()), DATEADD(day, -1, DATEDIFF(day, 0, DATEADD(year, -1, GETDATE())))
```
`GETDATE()`获取当前日期,`DATEADD(year, -1)`减少一年,`DATEDIFF(day, 0, ...)`计算距离年初的天数,再用`DATEADD(day, -1, ...)`得到最后一天。
3. **PostgreSQL**:
```sql
SELECT EXTRACT(YEAR FROM NOW() - INTERVAL '1 year') AS first_day_of_last_year,
date_trunc('day', now() - interval '1 year'::interval) as last_day_of_last_year
```
`EXTRACT(YEAR FROM ...)`提取年份,`date_trunc('day', ...)`截断到最近的一天。
4. **Oracle**:
```sql
SELECT TRUNC(SYSDATE, 'YYYY') - INTERVAL '1 YEAR' AS first_day_of_last_year,
ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), -12) AS last_day_of_last_year
```
`TRUNC(..., 'YYYY')`将日期截断到年份,`ADD_MONTHS(..., -12)`减少一年十二个月。
阅读全文