SQL多条件查询时间范围的语句

SQL多条件查询时间范围的语句

SQL多条件查询时间范围的语句

在实际的数据查询中,经常会遇到需要按照时间范围来筛选数据的需求。SQL语句提供了很好的方式来实现这一功能,可以使用多种方式来查询指定时间范围内的数据。本文将详细介绍SQL中多条件查询时间范围的语句,并给出一些示例代码。

1. 使用BETWEEN AND关键字

BETWEEN AND关键字可以用来筛选指定时间范围内的数据。其语法为:

SELECT * FROM table_name 
WHERE column_name BETWEEN 'start_date' AND 'end_date';

其中,start_dateend_date为指定的时间范围。例如,查询2022年1月1日至2022年12月31日之间的数据:

SELECT * FROM orders
WHERE order_date BETWEEN '2022-01-01' AND '2022-12-31';

2. 使用大于和小于符号

除了BETWEEN AND关键字外,还可以使用大于和小于符号来实现时间范围的筛选。其语法为:

SELECT * FROM table_name 
WHERE column_name >= 'start_date' AND column_name <= 'end_date';

例如,查询订单日期在2022年1月1日至2022年12月31日之间的数据:

SELECT * FROM orders
WHERE order_date >= '2022-01-01' AND order_date <= '2022-12-31';

3. 使用IN关键字

IN关键字可以用来筛选指定时间范围内的数据,其语法为:

SELECT * FROM table_name 
WHERE column_name IN ('date1', 'date2', ...);

例如,查询2022年1月1日和2022年12月31日的订单数据:

SELECT * FROM orders
WHERE order_date IN ('2022-01-01', '2022-12-31');

4. 使用AND、OR、NOT关键字结合

在实际的数据查询中,可能需要结合多个条件来筛选指定时间范围内的数据。可以使用ANDORNOT关键字来实现多条件查询。例如,查询2022年1月1日至2022年12月31日之间的未取消的订单数据:

SELECT * FROM orders
WHERE order_date BETWEEN '2022-01-01' AND '2022-12-31'
AND order_status <> 'Cancelled';

5. 示例代码及结果

下面给出一个简单的示例,假设有一张订单表orders,包含字段order_id、order_date和order_status,现在我们需要查询2022年1月1日至2022年12月31日之间的订单数据:

CREATE TABLE orders (
    order_id INT,
    order_date DATE,
    order_status VARCHAR(10)
);

INSERT INTO orders (order_id, order_date, order_status)
VALUES (1, '2022-01-05', 'Pending'),
       (2, '2022-03-15', 'Completed'),
       (3, '2022-07-20', 'Cancelled'),
       (4, '2022-12-10', 'Pending'),
       (5, '2023-01-05', 'Pending');

SELECT * FROM orders
WHERE order_date BETWEEN '2022-01-01' AND '2022-12-31';

查询结果如下:

order_id order_date order_status
1 2022-01-05 Pending
2 2022-03-15 Completed
3 2022-07-20 Cancelled
4 2022-12-10 Pending

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程