Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

หาวินาทีสุดท้ายของวันใน MySQL

ใช้ 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 ของวันเดิม