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

ดึงเฉพาะวันที่จากคอลัมน์ Datetime ด้วย DATE_FORMAT และ STR_TO_DATE ใน MySQL

ใช้ STR_TO_DATE แปลงสตริงเป็น DATE แล้ว DATE_FORMAT แสดงเฉพาะวันที่

สร้างตารางเก็บวันที่แบบสตริง

mysql> CREATE TABLE DemoTable (ShippingDate VARCHAR(200));
mysql> INSERT INTO DemoTable VALUES
    ('04:58 PM 10/31/2018'),
    ('02:30 AM 01/01/2019'),
    ('12:01 AM 05/03/2019');

ดูข้อมูลเดิม

mysql> SELECT * FROM DemoTable;
+---------------------+
| ShippingDate        |
+---------------------+
| 04:58 PM 10/31/2018 |
| 02:30 AM 01/01/2019 |
| 12:01 AM 05/03/2019 |
+---------------------+

คำสั่งแปลงและดึงเฉพาะวันที่ (MM/DD/YYYY)

mysql> SELECT DATE_FORMAT(
    ->     STR_TO_DATE(ShippingDate, '%h:%i %p %m/%d/%Y'),
    ->     '%m/%d/%Y'
    -> ) FROM DemoTable;

ผลลัพธ์

+-------------------------------------------------------------------------+
| DATE_FORMAT(STR_TO_DATE(ShippingDate, '%h:%i %p %m/%d/%Y'), '%m/%d/%Y') |
+-------------------------------------------------------------------------+
| 10/31/2018                                                              |
| 01/01/2019                                                              |
| 05/03/2019                                                              |
+-------------------------------------------------------------------------+

คำอธิบาย:

  • STR_TO_DATE(str, format) — แปลงสตริงเป็น DATETIME ตามรูปแบบ
  • DATE_FORMAT(date, format) — จัดรูปแบบวันที่ให้แสดงตามต้องการ
  • %h:%i %p %m/%d/%Y — 12-hr time, AM/PM, MM/DD/YYYY