Di MariaDB, TO_CHAR()
adalah fungsi string bawaan yang mengubah ekspresi tanggal/waktu menjadi string.
Ekspresi dapat berupa tanggal, tanggal, waktu, atau nilai stempel waktu.
Fungsi ini diperkenalkan di MariaDB 10.6.1 untuk meningkatkan kompatibilitas Oracle.
Sintaks
Sintaksnya seperti ini:
TO_CHAR(expr[, fmt])
Dimana expr
adalah tanggal, tanggal waktu, waktu, atau nilai stempel waktu, dan fmt
adalah string format opsional yang menentukan bagaimana output harus diformat.
Format string dapat berupa salah satu dari berikut ini:
YYYY
YYY
YY
RRRR
RR
MM
MON
MONTH
MI
DD
DY
HH
HH12
HH24
SS
- Karakter khusus
Nilai defaultnya adalah YYYY-MM-DD HH24:MI:SS
.
Contoh
Berikut ini contoh untuk didemonstrasikan:
SELECT TO_CHAR('2020-01-01');
Hasil:
+-----------------------+ | TO_CHAR('2020-01-01') | +-----------------------+ | 2020-01-01 00:00:00 | +-----------------------+
Meneruskan Nilai Tanggal-waktu
Contoh ini menggunakan nilai datetime:
SELECT TO_CHAR('2022-12-25 10:30:45');
Hasil:
+--------------------------------+ | TO_CHAR('2022-12-25 10:30:45') | +--------------------------------+ | 2022-12-25 10:30:45 | +--------------------------------+
Tentukan Format String
Berikut ini contoh dengan format string:
SELECT TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD');
Hasil:
+----------------------------------------------+ | TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD') | +----------------------------------------------+ | 2022-12-25 | +----------------------------------------------+
Ini satu lagi:
SELECT TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY');
Hasil:
+--------------------------------------------+ | TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY') | +--------------------------------------------+ | Sun, 25 December 2022 | +--------------------------------------------+
Tanggal Numerik
Inilah yang terjadi ketika saya memberikan tanggal numerik:
SELECT TO_CHAR(20200101);
Hasil:
ERROR 3047 (HY000): Invalid argument error: data type of first argument must be type date/datetime/time or string in function to_char.
Tanggal Tidak Valid
Jika tanggal tidak valid, TO_CHAR()
mengembalikan null
dengan peringatan:
SELECT TO_CHAR('2020-01-51');
Hasil:
+-----------------------+ | TO_CHAR('2020-01-51') | +-----------------------+ | NULL | +-----------------------+ 1 row in set, 1 warning (0.001 sec)
Mari kita periksa peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Format String Tidak Valid
Jika format string tidak valid, TO_CHAR()
mengembalikan kesalahan:
SELECT TO_CHAR('2020-01-01', 'wow');
Hasil:
ERROR 3047 (HY000): Invalid argument error: date format not recognized at wow in function to_char.
String Format Null
TO_CHAR()
mengembalikan null
jika format string adalah null
:
SELECT TO_CHAR('2020-01-01', null);
Hasil:
+-----------------------------+ | TO_CHAR('2020-01-01', null) | +-----------------------------+ | NULL | +-----------------------------+
Jumlah Argumen Tidak Valid
Melewati sejumlah argumen yang tidak valid (atau tidak ada argumen) menghasilkan kesalahan:
SELECT TO_CHAR();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_CHAR'