Hàm STR_TO_DATE trong MySQL

Trong bài này mình sẽ hướng dẫn cách sử dụng hàm STR_TO_DATE trong MySQL thông qua cú pháp và ví dụ thực tế.

1. Mô tả

Hàm STR_TO_DATE lấy một chuỗi và trả về một ngày được chỉ định bởi mặt nạ định dạng.

2. Cú pháp

Cú pháp của hàm STR_TO_DATE trong MySQL là:

STR_TO_DATE( string, format_mask )

Trong đó:

  • string: Giá trị chuỗi để định dạng là một ngày.
  • format_mask: Các định dạng để áp dụng cho string. Sau đây là danh sách các tùy chọn cho tham số format_mask. Các tham số này có thể được sử dụng trong nhiều kết hợp
Giá trị Mô tả
%a Viết tắt tên ngày trong tuần (Sun - Sat)
%b Viết tắt tên tháng (Jan đến Dec)
%c Tháng dưới dạng giá trị số (0 đến 12)
%D Ngày trong tháng dưới dạng giá trị số, theo sau là hậu tố (1st, 2nd, 3rd, ...)
%d Ngày trong tháng dưới dạng giá trị số (01 đến 31)
%e Ngày trong tháng dưới dạng giá trị số (1 đến 31)
%f Giây (000000 đến 999999)
%H Hour (00 đến 23)
%h hoặc %l Giờ (00 đến 12)
%i Phút (00 đến 59)
%j Ngày trong năm (001 đến 366)
%k Giờ (00 đến 23)
%l Giờ (1 đến 12)
%M Tên tháng đầy đủ (January đến December)
%m Tên tháng dưới dạng giá trị số (00 đến 12)
%p AM hoặc PM
%r Thời gian ở định dạng 12 giờ AM hoặc PM (hh: mm: ss AM / PM)
%S Giây (00 đến 59)
%s Giây (00 đến 59)
%T Thời gian ở định dạng 24 giờ (hh: mm: ss)
%U Tuần mà Chủ nhật là ngày đầu tuần (00 đến 53)
%u Tuần mà thứ Hai là ngày đầu tuần (00 đến 53)
%V Tuần mà Chủ nhật là ngày đầu tuần (01 đến 53)
%v Tuần mà thứ Hai là ngày đầu tuần (01 đến 53)
%W Tên ngày trong tuần đầy đủ (Sunday đến Saturday)
%w Ngày trong tuần trong đó Chủ nhật = 0 và Thứ bảy = 6
%X Năm trong tuần mà Chủ nhật là ngày đầu tuần
%x Năm trong tuần, thứ Hai là ngày đầu tuần
%Y Năm dưới dạng giá trị số, 4 chữ số
%y Năm dưới dạng giá trị số, 2 chữ số

Lưu ý:

  • Hàm STR_TO_DATE sẽ trả về giá trị ngày giờ, nếu chuỗi chứa cả phần ngày và thời gian hợp lệ.
  • Hàm STR_TO_DATE sẽ trả về giá trị ngày, nếu chuỗi chỉ chứa các phần ngày hợp lệ.
  • Hàm STR_TO_DATE sẽ trả về giờ, nếu chuỗi chỉ chứa các phần giờ hợp lệ.
  • Hàm STR_TO_DATE sẽ trả về giá trị NULL, nếu nó không thể trích xuất các phần ngày và giờ hợp lệ bằng cách sử dụng format_mask.

3. Version

Hàm STR_TO_DATE có thể được sử dụng trong các phiên bản sau của MySQL:

  • MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23

4. Ví dụ

mysql> SELECT STR_TO_DATE('February 05 2019', '%M %d %Y');
Ket qua: '2019-02-05'

mysql> SELECT STR_TO_DATE('March,9,2019', '%M,%e,%Y');
Ket qua: '2019-03-09'

mysql> SELECT STR_TO_DATE('Friday, February 20, 2019', '%W, %M %e, %Y');
Ket qua: '2019-02-20'

mysql> SELECT STR_TO_DATE('2019,5,25 08', '%Y,%m,%d %h');
Ket qua: '2019-05-25 08:00:00'

mysql> SELECT STR_TO_DATE('2019,3,27 02,30,05', '%Y,%m,%d %h,%i,%s');
Ket qua: '2019-03-27 02:30:05'

mysql> SELECT STR_TO_DATE('11,10,35', '%h,%i,%s');
Ket qua: 'NULL'

 

Nguồn: freetuts.net