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

แปลงสตริงเป็นเวลา (TIME/DATETIME) ใน MySQL

ใช้ STR_TO_DATE() พร้อม Format Specifier เพื่อแปลงสตริงเป็น DATETIME

ไวยากรณ์

SELECT STR_TO_DATE(yourColumnName, '%d/%m/%Y %h:%i %p') AS alias FROM yourTableName;

ตัวอย่างการใช้งาน

1. สร้างตารางและข้อมูล (รูปแบบ DD/MM/YYYY HH:MM)

mysql> create table DemoTable (DueDate varchar(100));
mysql> insert into DemoTable values('11/02/2019 10:35'), ('21/12/2018 12:01');

2. แปลงเป็น DATETIME

mysql> SELECT STR_TO_DATE(DueDate, '%d/%m/%Y %h:%i %p') AS ConvertDate FROM DemoTable;

ผลลัพธ์

+---------------------+
| ConvertDate         |
+---------------------+
| 2019-02-11 10:35:00 |
| 2018-12-21 00:01:00 |
+---------------------+

Format Specifiers สำหรับเวลา

Specifierความหมายตัวอย่าง
%hชั่วโมง 12 ชม. (01-12)10
%Hชั่วโมง 24 ชม. (00-23)22
%iนาที (00-59)35
%sวินาที (00-59)00
%pAM/PMAM

แปลงเฉพาะ TIME

SELECT STR_TO_DATE('10:35:00', '%H:%i:%s');  -- คืนค่า TIME
SELECT TIME('2019-02-11 10:35:00');           -- ดึง TIME จาก DATETIME

หมายเหตุ

  • %h ต้องใช้คู่กับ %p (AM/PM) | %H ใช้ได้เดี่ยว (24 ชม.)
  • รูปแบบต้องตรงกันทุกตัวอักษร
  • คืนค่า NULL หากรูปแบบไม่ตรง