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

MySQL CAST AS DATE เทียบกับฟังก์ชัน DATE()

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) แต่ผลลัพธ์เหมือนกันทุกประการ