SQL 时间段处理(时间段筛选,时间段取交集,时间段合并,拆分)
时间: 2023-08-10 22:13:40 浏览: 271
在 SQL 中处理时间段可以使用日期函数和运算符。
1. 时间段筛选:使用 WHERE 子句和 BETWEEN 运算符进行筛选
例如,筛选出订单日期在 2021 年 1 月 1 日至 2021 年 1 月 31 日之间的订单:
```sql
SELECT *
FROM orders
WHERE order_date BETWEEN '2021-01-01' AND '2021-01-31';
```
2. 时间段取交集:使用交集运算符(AND)筛选出两个时间段的交集
例如,筛选出同时满足下单时间在 2021 年 1 月 1 日至 2021 年 1 月 31 日之间且发货时间在 2021 年 2 月 1 日至 2021 年 2 月 28 日之间的订单:
```sql
SELECT *
FROM orders
WHERE order_date BETWEEN '2021-01-01' AND '2021-01-31'
AND ship_date BETWEEN '2021-02-01' AND '2021-02-28';
```
3. 时间段合并:使用 UNION 运算符将两个时间段合并为一个时间段
例如,合并 2021 年 1 月 1 日至 2021 年 1 月 15 日和 2021 年 1 月 16 日至 2021 年 1 月 31 日两个时间段为一个时间段:
```sql
SELECT *
FROM orders
WHERE order_date BETWEEN '2021-01-01' AND '2021-01-15'
UNION
SELECT *
FROM orders
WHERE order_date BETWEEN '2021-01-16' AND '2021-01-31';
```
4. 时间段拆分:使用日期函数进行拆分
例如,将订单日期拆分为年、月、日三个字段:
```sql
SELECT
YEAR(order_date) AS order_year,
MONTH(order_date) AS order_month,
DAY(order_date) AS order_day,
*
FROM orders;
```
阅读全文