MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách DATE_FORMAT () hoạt động trong MariaDB

Trong MariaDB, DATE_FORMAT() là một hàm ngày và giờ được tích hợp sẵn để định dạng ngày theo chuỗi định dạng đã cho.

Nó yêu cầu hai đối số; ngày tháng và chuỗi định dạng. Nó cũng chấp nhận đối số thứ ba tùy chọn cho phép bạn chỉ định ngôn ngữ.

Cú pháp

Cú pháp như sau:

DATE_FORMAT(date, format[, locale])

Nơi date là ngày, định dạng format là chuỗi định dạng (xem các chỉ định định dạng được chấp nhận) và locale là ngôn ngữ tùy chọn để sử dụng cho định dạng trả về.

Ví dụ

Đây là một ví dụ:

SELECT DATE_FORMAT('2030-01-25 10:30:45', '%W, %D %M %Y');

Kết quả:

+----------------------------------------------------+
| DATE_FORMAT('2030-01-25 10:30:45', '%W, %D %M %Y') |
+----------------------------------------------------+
| Friday, 25th January 2030                          |
+----------------------------------------------------+

Đây là một lần nữa, nhưng lần này sử dụng %r để trả về thời gian được trả về ở định dạng 12 giờ:

SELECT DATE_FORMAT('2030-01-25 10:30:45', '%r');

Kết quả:

+------------------------------------------+
| DATE_FORMAT('2030-01-25 10:30:45', '%r') |
+------------------------------------------+
| 10:30:45 AM                              |
+------------------------------------------+

Chúng ta có thể kết hợp chúng để có ngày giờ:

SELECT DATE_FORMAT('2030-01-25 10:30:45', '%r %W, %D %M %Y');

Kết quả:

+-------------------------------------------------------+
| DATE_FORMAT('2030-01-25 10:30:45', '%r %W, %D %M %Y') |
+-------------------------------------------------------+
| 10:30:45 AM Friday, 25th January 2030                 |
+-------------------------------------------------------+

Ngôn ngữ cho tên tháng, tên ngày, v.v. được xác định bởi lc_time_names biến hệ thống. Giá trị mặc định luôn là en_US bất kể cài đặt ngôn ngữ của hệ thống. Đây là cách xem cài đặt hiện tại của bạn.

Đối số ngôn ngữ

Bắt đầu với MariaDB 10.3.2, đối số thứ ba tùy chọn có thể được sử dụng để chỉ định ngôn ngữ. Khi điều này được chỉ định, nó làm cho chức năng độc lập với cài đặt phiên.

SELECT DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'es_PR');

Kết quả:

+----------------------------------------------------+
| DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'es_PR') |
+----------------------------------------------------+
| viernes, 25th enero 2030                           |
+----------------------------------------------------+

Dưới đây là một số ngôn ngữ khác:

SELECT 
    DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'fr_FR') AS fr_FR,
    DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'hr_HR') AS hr_HR,
    DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'ms_MY') AS fr_FR,
    DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'th_TH') AS th_TH;

Kết quả:

fr_FR: vendredi, 25th janvier 2030
hr_HR: Petak, 25th Siječanj 2030
fr_FR: Jumaat, 25th Januari 2030
th_TH: ศุกร์, 25th มกราคม 2030

Trong trường hợp này, lịch cuối cùng là tiếng Thái và mặc dù nó sử dụng các ký tự tiếng Thái cho tên tháng và tên ngày, nhưng nó không thay đổi năm thành lịch Thái Lan. Năm 2030 sẽ là năm 2573 khi sử dụng lịch Thái Lan. Vì vậy, tôi đoán giả định là nếu bạn muốn sử dụng năm Thái Lan, thì ngày bạn vượt qua sẽ sử dụng năm Thái Lan.

Ngày hiện tại

Tại đây, chúng tôi chuyển NOW() làm đối số ngày để định dạng ngày hiện tại:

SELECT DATE_FORMAT(NOW(), '%r %W, %D %M %Y');

Kết quả:

+---------------------------------------+
| DATE_FORMAT(NOW(), '%r %W, %D %M %Y') |
+---------------------------------------+
| 09:53:00 AM Tuesday, 11th May 2021    |
+---------------------------------------+

Đối số không hợp lệ

Khi được truyền bất kỳ đối số không hợp lệ nào, DATE_FORMAT() trả về null :

SELECT DATE_FORMAT('Homer', 'Simpson');

Kết quả:

+---------------------------------+
| DATE_FORMAT('Homer', 'Simpson') |
+---------------------------------+
| NULL                            |
+---------------------------------+

Thiếu đối số

Đang gọi DATE_FORMAT() với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào, dẫn đến lỗi:

SELECT DATE_FORMAT();

Kết quả:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

Và một ví dụ khác:

SELECT DATE_FORMAT('2030-05-21');

Kết quả:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

GET_FORMAT() Chức năng

Bạn cũng có thể sử dụng GET_FORMAT() trong đối số thứ hai thành DATE_FORMAT() . Điều này trả về chuỗi định dạng đầy đủ cho một định dạng ngày nhất định, giúp bạn không phải nhớ chuỗi định dạng để sử dụng.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách SLEEP () hoạt động trong MariaDB

  2. 8 chức năng để trả lại một ngày từ một ngày trong MariaDB

  3. Cơ sở dữ liệu MySQL của tôi đã hết dung lượng đĩa

  4. DBaaS, định tuyến truy vấn đám mây và trong suốt

  5. Cách thức hoạt động của DIV trong MariaDB