Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách chọn ngày trước/sau/giữa có điều kiện trong MySQL

Cú pháp:

SELECT * FROM tenBang
WHERE cot1 < giaTri1 AND (cot2 > giaTri2 OR cot2 IS NULL);

Tạo bảng demo35:

mysql> CREATE TABLE demo35 (
    -> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> joining_date DATE,
    -> relieving_date DATE
    -> );

Chèn dữ liệu:

mysql> INSERT INTO demo35(joining_date,relieving_date) VALUES('2020-01-10','2020-07-11');
mysql> INSERT INTO demo35(joining_date,relieving_date) VALUES('2020-05-07','2020-12-08');
mysql> INSERT INTO demo35(joining_date,relieving_date) VALUES('2020-04-11','2020-09-18');
mysql> INSERT INTO demo35(joining_date,relieving_date) VALUES('2020-03-12','2020-10-01');

Hiển thị dữ liệu:

mysql> SELECT * FROM demo35;

Kết quả:

+----+--------------+----------------+
| id | joining_date | relieving_date |
+----+--------------+----------------+
| 1  | 2020-01-10   | 2020-07-11     |
| 2  | 2020-05-07   | 2020-12-08     |
| 3  | 2020-04-11   | 2020-09-18     |
| 4  | 2020-03-12   | 2020-10-01     |
+----+--------------+----------------+

Truy vấn chọn nhân viên tham gia trước '2020-05-11' VÀ (nghỉ việc sau '2020-08-10' HOẶC chưa nghỉ việc):

mysql> SELECT * FROM demo35
    -> WHERE joining_date < '2020-05-11'
    -> AND (relieving_date > '2020-08-10' OR relieving_date IS NULL);

Kết quả:

+----+--------------+----------------+
| id | joining_date | relieving_date |
+----+--------------+----------------+
| 2  | 2020-05-07   | 2020-12-08     |
| 3  | 2020-04-11   | 2020-09-18     |
| 4  | 2020-03-12   | 2020-10-01     |
+----+--------------+----------------+