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.