Computer >> Máy Tính >  >> Lập trình >> MySQL

Chọn dữ liệu và đặt giá trị thành boolean dựa trên cột dấu thời gian trong MySQL

Đối với điều này, hãy sử dụng IF (). Trước tiên hãy để chúng tôi xem ngày hiện tại -

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2019-12-10 |
+------------+
1 row in set (0.00 sec)

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1890
   (
   DueDate timestamp
   );
Query OK, 0 rows affected (0.00 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable1890 values('2017-12-10');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1890 values('2021-12-10');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1890 values('2018-04-24');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1890 values('2020-05-11');
Query OK, 1 row affected (0.00 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select * from DemoTable1890;

Điều này sẽ tạo ra kết quả sau -

+---------------------+
| DueDate             |
+---------------------+
| 2017-12-10 00:00:00 |
| 2021-12-10 00:00:00 |
| 2018-04-24 00:00:00 |
| 2020-05-11 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

Đây là truy vấn để chọn dữ liệu và đặt giá trị dựa trên cột dấu thời gian -

mysql> select if(DueDate > curdate() - interval 2 year,false,true) as Status from DemoTable1890;

Điều này sẽ tạo ra kết quả sau -

+--------+
| Status |
+--------+
|      1 |
|      0 |
|      0 |
|      0 |
+--------+
4 rows in set (0.00 sec)