Di MariaDB, STR_TO_DATE()
adalah fungsi tanggal dan waktu bawaan yang mengembalikan nilai tanggal waktu, berdasarkan string tanggal dan string format yang diberikan.
STR_TO_DATE()
fungsi adalah kebalikan dari DATE_FORMAT()
fungsi.
Sintaks
Sintaksnya seperti ini:
STR_TO_DATE(str,format)
Dimana str
adalah string tanggal, dan format
adalah string format yang menentukan format string tanggal.
Contoh
Ini contohnya:
SELECT STR_TO_DATE('Monday, May 24, 2021', '%W, %M %e, %Y');
Hasil:
+------------------------------------------------------+ | STR_TO_DATE('Monday, May 24, 2021', '%W, %M %e, %Y') | +------------------------------------------------------+ | 2021-05-24 | +------------------------------------------------------+
String format terdiri dari sejumlah penentu format yang memberi tahu MariaDB bagaimana tanggal dalam argumen pertama diformat. Lihat MariaDB Format Strings untuk daftar penentu format yang dapat digunakan dalam format string.
Dalam contoh ini, hasilnya adalah nilai tanggal, karena format string hanya berisi bagian tanggal.
Mengembalikan Nilai Tanggal-waktu
Berikut ini contoh yang mengembalikan nilai datetime:
SELECT STR_TO_DATE('May 24, 2021', '%M %e, %Y %H:%i:%S');
Hasil:
+---------------------------------------------------+ | STR_TO_DATE('May 24, 2021', '%M %e, %Y %H:%i:%S') | +---------------------------------------------------+ | 2021-05-24 00:00:00 | +---------------------------------------------------+
Dalam contoh ini, bagian waktu ditambahkan, meskipun argumen pertama tidak berisi bagian waktu.
Berikut contoh lain yang menyertakan bagian waktu dalam argumen pertama:
SELECT
STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S on %M %e, %Y');
Hasil:
+------------------------------------------------------------------+ | STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S on %M %e, %Y') | +------------------------------------------------------------------+ | 2021-05-24 10:30:45 | +------------------------------------------------------------------+
Ini satu lagi, di mana string tanggal menggunakan nilai waktu yang lebih longgar:
SELECT
STR_TO_DATE('10.30pm on May 24, 2021', '%H.%ipm on %M %e, %Y');
Hasil:
+----------------------------------------------------------------+ | STR_TO_DATE('10.30pm on May 24, 2021', '%H.%ipm on %M %e, %Y') | +----------------------------------------------------------------+ | 2021-05-24 10:30:00 | +----------------------------------------------------------------+
Mengembalikan Nilai Waktu
Di sini, kami mengubah format string untuk mengembalikan nilai waktu saja:
SELECT STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S');
Hasil:
+-----------------------------------------------------+ | STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S') | +-----------------------------------------------------+ | 10:30:45 | +-----------------------------------------------------+
String Tanggal/Waktu Ilegal
Melewati string tanggal ilegal mengembalikan null
dengan peringatan.
Contoh:
SELECT STR_TO_DATE('Humpday, May 26, 2021', '%W, %M %e, %Y');
Hasil:
+-------------------------------------------------------+ | STR_TO_DATE('Humpday, May 26, 2021', '%W, %M %e, %Y') | +-------------------------------------------------------+ | NULL | +-------------------------------------------------------+ 1 row in set, 1 warning (0.009 sec)
Mari kita lihat peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+----------------------------------------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------------------------------------+ | Warning | 1411 | Incorrect datetime value: 'Humpday, May 26, 2021' for function str_to_date | +---------+------+----------------------------------------------------------------------------+
Argumen Tidak Ada
Memanggil STR_TO_DATE()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:
SELECT STR_TO_DATE();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STR_TO_DATE'
Dan contoh lain:
SELECT STR_TO_DATE('Friday, 28 May 2021');
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STR_TO_DATE'