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

วิธี INSERT วันที่ปัจจุบันบวกเวลาเฉพาะใน MySQL

รวม CURDATE() กับเวลาคงที่ด้วย CONCAT() สร้าง DATETIME

ใช้ CONCAT(CURDATE(), ' HH:MM:SS') รวมวันที่ปัจจุบัน (ไม่มีเวลา) กับสตริงเวลาที่กำหนด ให้ได้ DATETIME

ตัวอย่างสร้างตาราง

CREATE TABLE DemoTable (ArrivalDate DATETIME);

INSERT วันที่วันนี้ + เวลา 10:20:05 และ 12:05:00

INSERT INTO DemoTable VALUES (CONCAT(CURDATE(), ' 10:20:05'));
INSERT INTO DemoTable VALUES (CONCAT(CURDATE(), ' 12:05:00'));

ผลลัพธ์ (สมมติวันนี้ 2019-06-08)

+---------------------+
| ArrivalDate         |
+---------------------+
| 2019-06-08 10:20:05 |
| 2019-06-08 12:05:00 |
+---------------------+

คำอธิบาย:

  • CURDATE() คืนค่า DATE (YYYY-MM-DD)
  • CONCAT(..., ' 10:20:05') รวมเป็นสตริง 'YYYY-MM-DD HH:MM:SS'
  • MySQL แปลงสตริงเป็น DATETIME อัตโนมัติ (Implicit Cast) ตอน INSERT

วิธีอื่น (แนะนำ ใช้ฟังก์ชันวันที่):

INSERT INTO DemoTable VALUES (TIMESTAMP(CURDATE(), '10:20:05'));
INSERT INTO DemoTable VALUES (CAST(CONCAT(CURDATE(), ' 10:20:05') AS DATETIME));

⚐ หมายเหตุ: หากต้องการ Timezone แบบเฉพาะ ใช้ CONVERT_TZ() หรือเก็บเป็น UTC ใน DB แปลงตอนแสดงผล