MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Bagaimana DATE_FORMAT() Bekerja di MariaDB

Di MariaDB, DATE_FORMAT() adalah fungsi tanggal dan waktu bawaan yang memformat tanggal sesuai dengan string format yang diberikan.

Ini membutuhkan dua argumen; tanggal dan format string. Ia juga menerima argumen ketiga opsional yang memungkinkan Anda menentukan lokal.

Sintaks

Sintaksnya seperti ini:

DATE_FORMAT(date, format[, locale])

Dimana date adalah tanggal, format adalah string format (lihat penentu format yang diterima), dan locale adalah lokal opsional yang digunakan untuk format yang dikembalikan.

Contoh

Ini contohnya:

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

Hasil:

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

Ini dia lagi, tapi kali ini menggunakan %r untuk mengembalikan waktu yang dikembalikan dalam format 12 jam:

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

Hasil:

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

Kita dapat menggabungkannya, sehingga kita mendapatkan waktu dan tanggal:

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

Hasil:

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

Bahasa untuk nama bulan, nama hari, dll ditentukan oleh lc_time_names variabel sistem. Standarnya selalu en_US terlepas dari pengaturan lokal sistem. Berikut cara melihat setelan Anda saat ini.

Argumen Lokal

Dimulai dengan MariaDB 10.3.2, argumen ketiga opsional dapat digunakan untuk menentukan lokal. Ketika ini ditentukan, itu membuat fungsi independen dari pengaturan sesi.

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

Hasil:

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

Berikut beberapa lokal lainnya:

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;

Hasil:

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

Dalam hal ini, yang terakhir adalah Thailand, dan meskipun menggunakan karakter Thailand untuk nama bulan dan nama hari, itu tidak mengubah tahun ke kalender Thailand. Tahun 2030 adalah 2573 jika menggunakan kalender Thailand. Jadi saya kira asumsinya adalah jika Anda ingin menggunakan tahun Thailand, maka tanggal yang Anda lewati sudah menggunakan tahun Thailand.

Tanggal Saat Ini

Di sini, kami melewati NOW() sebagai argumen tanggal untuk memformat tanggal saat ini:

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

Hasil:

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

Argumen Tidak Valid

Saat memberikan argumen yang tidak valid, DATE_FORMAT() mengembalikan null :

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

Hasil:

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

Argumen Tidak Ada

Memanggil DATE_FORMAT() dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:

SELECT DATE_FORMAT();

Hasil:

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

Dan contoh lain:

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

Hasil:

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() Fungsi

Anda juga dapat menggunakan GET_FORMAT() fungsi dalam argumen kedua ke DATE_FORMAT() . Ini mengembalikan string format lengkap untuk format tanggal tertentu, sehingga Anda tidak perlu mengingat string format yang akan digunakan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AWS RDS:“SQLSTATE[22001] – Data terlalu panjang untuk kolom” menggunakan MariaDB 10.2

  2. MariaDB JSON_OBJECT() Dijelaskan

  3. Kurangi Sebulan dari Tanggal di MariaDB

  4. Cara Menyebarkan Server MariaDB ke Wadah Docker

  5. Bagaimana SIN() Bekerja di MariaDB