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

Chọn dữ liệu và gán giá trị boolean dựa trên cột timestamp MySQL

Sử dụng IF(dieu_kien, true_val, false_val) để trả về 1/0 (true/false) dựa trên so sánh cột timestamp với ngày hiện tại trừ khoảng thời gian.

Ví dụ minh họa

Giả sử hôm nay 2019-12-10. Tạo bảng DueDate:

mysql> CREATE TABLE DemoTable1890 (DueDate TIMESTAMP);
mysql> INSERT INTO DemoTable1890 VALUES('2017-12-10'),('2021-12-10'),('2018-04-24'),('2020-05-11');

Gán true (1) nếu DueDate > 2 năm trước (cũ), false (0) nếu gần:

mysql> SELECT IF(DueDate > CURDATE() - INTERVAL 2 YEAR, FALSE, TRUE) AS Status FROM DemoTable1890;

Kết quả (1=cũ, 0=gần):

+--------+
| Status |
+--------+
|      1 |  -- 2017-12-10 cũ > 2 năm
|      0 |  -- 2021-12-10 tương lai
|      0 |  -- 2018-04-24 < 2 năm
|      0 |  -- 2020-05-11 < 2 năm
+--------+

Lưu ý: MySQL boolean là alias của TINYINT(1). IF trả về kiểu của nhánh true/false.