ใช้ DATE() + INTERVAL 1 DAY - INTERVAL 1 SECOND
สร้างตารางและเพิ่มข้อมูล
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');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(JoiningDatetime) values('2019-10-04 12:34:54');
Query OK, 1 row affected (0.13 sec)
คิวรี่คำนวณ DueDatetime = วินาทีสุดท้ายของวันนั้น
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
ผลลัพธ์
mysql> select * from DemoTable;
+---------------------+---------------------+ | 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 | +---------------------+---------------------+ 2 rows in set (0.00 sec)
หลักการ: DATE(dt) ตัดเวลาออก เหลือ 00:00:00 | + INTERVAL 1 DAY ขยับไปวันถัดไป 00:00:00 | - INTERVAL 1 SECOND ย้อนกลับ 1 วินาที = 23:59:59 ของวันเดิม