รวม 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 แปลงตอนแสดงผล