CAST(column AS DATE) และ DATE(column) ให้ผลลัพธ์เหมือนกันทั้งคู่ เรียกฟังก์ชันภายในเดียวกัน
ไวยากรณ์
CAST(yourDateTimeColumn AS DATE) DATE(yourDateTimeColumn)
ตัวอย่างการใช้งาน
สร้างตาราง CastAsDateDemo:
mysql> CREATE TABLE CastAsDateDemo (
-> Id INT NOT NULL AUTO_INCREMENT,
-> ArrivalTime DATETIME,
-> PRIMARY KEY(Id)
-> );
เพิ่มข้อมูล:
mysql> INSERT INTO CastAsDateDemo(ArrivalTime) VALUES('2014-01-13 13:45:46');
mysql> INSERT INTO CastAsDateDemo(ArrivalTime) VALUES('2016-04-11 10:30:31');
mysql> INSERT INTO CastAsDateDemo(ArrivalTime) VALUES('2019-01-09 19:17:49');
mysql> INSERT INTO CastAsDateDemo(ArrivalTime) VALUES(DATE_ADD(NOW(), INTERVAL 2 DAY));
ข้อมูลเดิม
+----+---------------------+ | Id | ArrivalTime | +----+---------------------+ | 1 | 2014-01-13 13:45:46 | | 2 | 2016-04-11 10:30:31 | | 3 | 2019-01-09 19:17:49 | | 4 | 2019-01-11 19:17:59 | +----+---------------------+
ใช้ CAST()
mysql> SELECT CAST(ArrivalTime AS DATE) AS only_Date FROM CastAsDateDemo;
+------------+ | only_Date | +------------+ | 2014-01-13 | | 2016-04-11 | | 2019-01-09 | | 2019-01-11 | +------------+
ใช้ DATE()
mysql> SELECT DATE(ArrivalTime) AS only_Date FROM CastAsDateDemo;
+------------+ | only_Date | +------------+ | 2014-01-13 | | 2016-04-11 | | 2019-01-09 | | 2019-01-11 | +------------+
สรุป: ใช้ DATE() สั้นกว่าและอ่านง่ายกว่า CAST(... AS DATE) แต่ผลลัพธ์เหมือนกันทุกประการ