Đầu tiên, chúng ta phải chuyển đổi chuỗi thành giá trị ngày. Để làm điều này, chúng ta sử dụng hàm
2021-02-10 12:30:204. Truy vấn sẽ giống như thế này
SELECT STR_TO_DATE["Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T”];
Mục đích của hàm
2021-02-10 12:30:204 là chuyển đổi chuỗi văn bản thành đị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 chúng ta muốn chuyển đổi. Đối số thứ hai chỉ đị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 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ạ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 thông 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ư thế này
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 hàm
SELECT DATE_FORMAT[STR_TO_DATE["Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"], "%T"];0 vào truy vấn trên
Cú pháp chung của hàm
SELECT DATE_FORMAT[STR_TO_DATE["Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"], "%T"];0 là
DATE_FORMAT[date, format]
Sau đó, truy vấn của chúng tôi sẽ giống như thế này
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 ta, đối số đầu tiên của hàm
SELECT DATE_FORMAT[STR_TO_DATE["Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"], "%T"];0 là ngày do hàm
2021-02-10 12:30:204 tạo ra. Đối số thứ hai là định dạng, hoạt động giống như trong hàm
2021-02-10 12:30:204. Vì chúng tôi chỉ cần thời gian ở đây, chúng tôi chỉ định "______35" làm đối số thứ hai
Ký tự % là bắt buộc trước ký tự xác đị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 chấm 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
Các hàm TO_DATE và TO_TIMESTAMP của Oracle có thể chuyển đổi một chuỗi ở định dạng được chỉ định. Lưu ý rằng các chỉ định định dạng là khác nhau [xem ánh xạ ở trên]
STR_TO_DATE[string, format];0
Máy chủ SQL
Hàm CONVERT của SQL Server có thể chuyển đổi một chuỗi thành DATETIME, nhưng thay vì chỉ định định dạng định dạng cho các phần ngày/giờ, bạn phải chỉ định một kiểu cho toàn bộ giá trị [xem ánh xạ ở trên]
STR_TO_DATE[string, format];1
PostgreSQL
PostgreSQL cung cấp các hàm TO_DATE và TO_TIMESTAMP để chuyển đổi một chuỗi ở định dạng đã chỉ định thành DATE hoặc TIMESTAMP
Trong SQL Server, bạn có thể sử dụng hàm CONVERT để chuyển đổi một chuỗi có định dạng được chỉ định thành giá trị DATETIME. Trong MySQL, bạn có thể sử dụng hàm STR_TO_DATE nếu cần định dạng cụ thể hoặc CONVERT nếu cần định dạng mặc định
Lưu ý rằng thứ tự của các tham số trong các hàm CHUYỂN ĐỔI của SQL Server và MySQL là khác nhau.
Máy chủ SQL
STR_TO_DATE[string, format];2
mysql
STR_TO_DATE[string, format];3
Khi bạn chuyển đổi hàm CONVERT thành STR_TO_DATE, bạn phải ánh xạ kiểu Máy chủ SQL thành chuỗi định dạng phù hợp trong MySQL
SQL Server StyleMySQL Format StringString Ví dụ101US - MM/DD/YYYY'%m/%d/%Y''11/29/2012'121ODBC - YYYY-MM-DD HH. MI. SS. FFF'%Y-%m-%d %T. %f''2012-11-29 18. 21. 11. 123'ví dụ chuyển đổi
SQL ServerMySQLCONVERT[DATETIME, '11/29/2012', 101]STR_TO_DATE['11/29/2012', '%m/%d/%Y']CONVERT[DATETIME, '29-11-2012 18. 21. 11. 123', 121]STR_TO_DATE['29-11-2012 18. 21. 11. 123', '%Y-%m-%d %T. %f']Trong SQL Server, kiểu dữ liệu SMALLDATETIME lưu trữ giá trị ngày giờ với 00 giây. Bạn có thể sử dụng biểu thức bên dưới để giữ 00 giây sau khi sử dụng chức năng CONVERT trong MySQL
Hàm CONVERT của MySQL chuyển đổi một giá trị từ kiểu dữ liệu này sang kiểu dữ liệu khác hoặc một ký tự được đặt thành một ký tự khác
cú pháp
Có 2 cú pháp cho hàm CONVERT - một cú pháp để chuyển đổi kiểu dữ liệu và một cú pháp để chuyển đổi bộ ký tự
Cú pháp đầu tiên cho hàm CONVERT được sử dụng để chuyển đổi một kiểu dữ liệu này sang kiểu dữ liệu khác trong MySQL
STR_TO_DATE[string, format];4
HOẶC
Cú pháp thứ hai cho hàm CONVERT được sử dụng để chuyển đổi một bộ ký tự này sang bộ ký tự khác
STR_TO_DATE[string, format];5
Tham số hoặc Đối số
valueGiá trị cần chuyển đổi. loạiKiểu dữ liệu mà bạn muốn chuyển đổi giá trị thành. loại có thể là một trong những điều sau đây
ValueDescriptionDATEChuyển đổi giá trị thành loại DATE, loại chỉ có phần ngày.
Định dạng là 'YYYY-MM-DD'.
Phạm vi được hỗ trợ là '1000-01-01' đến '9999-12-31'. DATETIMEChuyển đổi giá trị thành loại DATETIME, có cả phần ngày và giờ.
Định dạng là 'YYYY-MM-DD HH. MM. SS'.
Phạm vi được hỗ trợ là '1000-01-01 00. 00. 00' đến '9999-12-31 23. 59. 59'. TIMEChuyển đổi giá trị thành loại TIME, chỉ có một phần thời gian.
Định dạng là 'HH. MM. SS'.
Phạm vi được hỗ trợ là '-838. 59. 59' đến '838. 59. 59'. CHARChuyển đổi giá trị thành loại CHAR, là một chuỗi có độ dài cố định. SIGNEDChuyển đổi giá trị thành loại SIGNED, là số nguyên 64 bit có dấu. UNSIGNEDChuyển đổi giá trị thành loại UNSIGNED, là số nguyên 64 bit không dấu. BINARYChuyển đổi giá trị thành kiểu BINARY, là một chuỗi nhị phân.
Ghi chú
- Bắt đầu từ MySQL 4. 0. 6, bạn có thể sử dụng kiểu CHAR trong hàm CONVERT
- Xem thêm chức năng CAST
Áp dụng đối với
Hàm CONVERT có thể được sử dụng trong các phiên bản sau của MySQL
- mysql 5. 7, MySQL5. 6, MySQL5. 5, MySQL5. 1, MySQL5. 0, MySQL4. 1, MySQL4. 0. 2
Ví dụ
Hãy xem một số ví dụ về hàm CONVERT của MySQL và khám phá cách sử dụng hàm CONVERT trong MySQL
Chuyển đổi sang ngày
Cú pháp đầu tiên cho hàm CONVERT của MySQL cho phép bạn chuyển đổi một giá trị từ kiểu dữ liệu này sang kiểu dữ liệu khác. Hãy xem cách sử dụng hàm CONVERT để chuyển đổi một giá trị thành kiểu DATE. Ví dụ
STR_TO_DATE[string, format];6
Ví dụ CHUYỂN ĐỔI này lấy giá trị '2014-02-28' và chuyển đổi nó thành kiểu dữ liệu DATE
Chuyển đổi sang DATETIME
Ví dụ về hàm CONVERT này cho biết cách chuyển đổi một giá trị thành kiểu DATETIME. Ví dụ
STR_TO_DATE[string, format];7
Ví dụ CHUYỂN ĐỔI này lấy giá trị '2014-02-28 08. 14. 57' và chuyển đổi nó thành kiểu dữ liệu DATETIME
Chuyển đổi sang THỜI GIAN
Ví dụ về hàm CONVERT này cho biết cách chuyển đổi một giá trị thành kiểu TIME. Ví dụ
STR_TO_DATE[string, format];8
Ví dụ CHUYỂN ĐỔI này lấy giá trị '08. 14. 57' và chuyển đổi nó thành kiểu dữ liệu TIME
Chuyển đổi sang CHAR
Ví dụ về hàm CONVERT này cho biết cách chuyển đổi một giá trị thành kiểu CHAR. Ví dụ
STR_TO_DATE[string, format];9
Ví dụ CHUYỂN ĐỔI này lấy giá trị 125 và chuyển đổi nó thành kiểu dữ liệu CHAR với giá trị '125'
Chuyển đổi thành ĐÃ KÝ
Ví dụ về hàm CONVERT này cho biết cách chuyển đổi một giá trị thành loại ĐÃ KÝ. Ví dụ
2021-02-10 12:30:200
Ví dụ CONVERT này lấy giá trị 4-5 và chuyển đổi nó thành kiểu dữ liệu SIGNED với giá trị -2
Chuyển đổi sang KHÔNG KÝ
Ví dụ về hàm CONVERT này cho biết cách chuyển đổi một giá trị thành loại UNSIGNED. Ví dụ
2021-02-10 12:30:201
Ví dụ CHUYỂN ĐỔI này lấy giá trị 4-5 và chuyển đổi nó thành kiểu dữ liệu UNSIGNED với giá trị 18446744073709551614
Chuyển đổi sang BINARY
Ví dụ về hàm CONVERT này cho biết cách chuyển đổi một giá trị thành loại BINARY. Ví dụ
2021-02-10 12:30:202
Ví dụ CHUYỂN ĐỔI này lấy giá trị '4' và chuyển đổi nó thành kiểu dữ liệu BINARY với giá trị chuỗi nhị phân là '4'
Chuyển đổi bộ ký tự
Cú pháp thứ hai cho hàm MySQL CONVERT cho phép bạn chuyển đổi một giá trị từ bộ ký tự này sang bộ ký tự khác. Hãy xem cách sử dụng hàm CONVERT để chuyển đổi giữa các bộ ký tự. Ví dụ
2021-02-10 12:30:203
Ví dụ CHUYỂN ĐỔI này lấy giá trị 'techonthenet. com' và chuyển đổi nó từ bộ ký tự hiện tại sang bộ ký tự utf8
Chúng ta có thể thay đổi ví dụ ở trên để chuyển đổi giá trị 'techonthenet. com' thành bộ ký tự latin1 như sau