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

Lấy giây cuối cùng của một ngày trong MySQL

Tính thời điểm cuối ngày (23:59:59) từ datetime trong MySQL

Công thức: DATE(ngay) + INTERVAL 1 DAY - INTERVAL 1 SECOND. Lấy phần ngày, cộng 1 ngày về 00:00:00 ngày mai, trừ 1 giây.

Tạo bảng và dữ liệu

mysql> create table DemoTable ( 
    JoiningDatetime datetime, 
    DueDatetime datetime 
); 
Query OK, 0 rows affected (0.55 sec)
mysql> insert into DemoTable(JoiningDatetime) values('2019-11-03 12:34:54'); 
mysql> insert into DemoTable(JoiningDatetime) values('2019-10-04 12:34:54');

Cập nhật DueDatetime = cuối ngày của JoiningDatetime

mysql> update DemoTable 
    -> set DueDatetime = DATE(JoiningDatetime) + INTERVAL 1 DAY - INTERVAL 1 SECOND; 
Query OK, 2 rows affected (0.19 sec) 
Rows matched: 2  Changed: 2  Warnings: 0

Kết quả

+---------------------+---------------------+ 
| JoiningDatetime     | DueDatetime         | 
+---------------------+---------------------+ 
| 2019-11-03 12:34:54 | 2019-11-03 23:59:59 | 
| 2019-10-04 12:34:54 | 2019-10-04 23:59:59 | 
+---------------------+---------------------+

Cách thay thế (MySQL 5.6.4+):

  • DATE_ADD(DATE(JoiningDatetime), INTERVAL 1 DAY) - INTERVAL 1 SECOND
  • TIMESTAMP(DATE(JoiningDatetime)) + INTERVAL 1 DAY - INTERVAL 1 SECOND
  • Dùng LAST_DAY() cho cuối tháng: LAST_DAY(JoiningDatetime) + INTERVAL 1 DAY - INTERVAL 1 SECOND

Ứng dụng: Thiết lập deadline cuối ngày, báo cáo ngày, window hàm thời gian.