Vấn đề:
Bạn muốn trích xuất thời gian từ một giá trị chuỗi trong MySQL.
Ví dụ:
Bạn có một giá trị chuỗi trông giống như sau:
‘Wednesday, 10 February 2021, 12:30:20’
Bạn chỉ muốn trích xuất phần thời gian, ‘12:30:20’.
Giải pháp:
Đây là truy vấn:
SELECT DATE_FORMAT(STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"), "%T");
Thảo luận:
Để minh họa quá trình rõ ràng hơn, chúng tôi sẽ giải thích điều này trong hai phần.
Đầu tiên, chúng ta phải chuyển đổi chuỗi thành giá trị ngày tháng. Để thực hiện việc này, chúng tôi sử dụng STR_TO_DATE
hàm số. Truy vấn sẽ giống như sau:
SELECT STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T”);
Mục đích của STR_TO_DATE
chức năng là chuyển đổi một chuỗi văn bản sang định dạng ngày giờ. Cú pháp của hàm này như sau:
STR_TO_DATE(string, format);
Đối số đầu tiên của hàm này là chuỗi mà chúng ta muốn chuyển đổi. Đối số thứ hai xác định định dạng của chuỗi. Trong trường hợp của chúng tôi, chúng tôi sử dụng các tham số sau:
- % W:Tên các ngày trong tuần từ Chủ Nhật đến Thứ Bảy.
- % d:Ngày trong tháng dưới dạng giá trị số từ 01 đến 31.
- % m:Tháng dưới dạng giá trị số từ 01 đến 12.
- % Y:Năm dưới dạng giá trị số gồm 4 chữ số (yyyy).
- % T:Thời gian ở định dạng 24 giờ (hh:mm:ss).
Bạn có thể tìm thêm các tham số trong tài liệu chính thức cho MySQL.
Kết quả của truy vấn này sẽ giống như sau:
2021-02-10 12:30:20
Bây giờ chúng ta có giá trị trong kiểu dữ liệu DATETIME. Để chỉ trích xuất thời gian, chúng ta phải thêm DATE_FORMAT
cho truy vấn ở trên.
Cú pháp chung của DATE_FORMAT
chức năng là:
DATE_FORMAT(date, format)
Sau đó, truy vấn của chúng tôi sẽ giống như sau:
SELECT DATE_FORMAT(STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"), "%T");
Trong ví dụ của chúng tôi, đối số đầu tiên của DATE_FORMAT
hàm là ngày kết quả từ STR_TO_DATE
hàm số. Đối số thứ hai là định dạng, hoạt động theo cách tương tự như trong STR_TO_DATE
hàm số. Vì chúng tôi chỉ cần thời gian ở đây, chúng tôi chỉ định "%T
"là đối số thứ hai.
Ký tự% là bắt buộc trước các ký tự chỉ định định dạng. Chúng tôi phải chỉ định định dạng theo đúng thứ tự, bao gồm tất cả các dấu câu.
Kết quả truy vấn mà chúng ta thấy bên dưới là kết quả mong đợi.
12:30:20
Bằng cách sử dụng kết hợp hai hàm này, bạn có thể trích xuất mọi kết hợp ngày và giờ có thể có từ một chuỗi văn bản.