MariaDBでは、TO_CHAR() は、日付/時刻式を文字列に変換する組み込みの文字列関数です。
式には、日付、日時、時刻、またはタイムスタンプの値を指定できます。
この関数は、Oracleの互換性を強化するためにMariaDB10.6.1で導入されました。
構文
構文は次のようになります:
TO_CHAR(expr[, fmt])
expr は日付、日時、時刻、またはタイムスタンプの値であり、fmt 出力のフォーマット方法を指定するオプションのフォーマット文字列です。
フォーマット文字列は次のいずれかになります。
-
YYYY -
YYY -
YY -
RRRR -
RR -
MM -
MON -
MONTH -
MI -
DD -
DY -
HH -
HH12 -
HH24 -
SS - 特殊文字
デフォルト値はYYYY-MM-DD HH24:MI:SSです。 。
例
デモンストレーションの例を次に示します。
SELECT TO_CHAR('2020-01-01'); 結果:
+-----------------------+
| TO_CHAR('2020-01-01') |
+-----------------------+
| 2020-01-01 00:00:00 |
+-----------------------+ 日時の値を渡す
この例では、日時の値を使用しています:
SELECT TO_CHAR('2022-12-25 10:30:45'); 結果:
+--------------------------------+
| TO_CHAR('2022-12-25 10:30:45') |
+--------------------------------+
| 2022-12-25 10:30:45 |
+--------------------------------+ フォーマット文字列を指定する
フォーマット文字列の例を次に示します。
SELECT TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD'); 結果:
+----------------------------------------------+
| TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD') |
+----------------------------------------------+
| 2022-12-25 |
+----------------------------------------------+ もう1つあります:
SELECT TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY'); 結果:
+--------------------------------------------+
| TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY') |
+--------------------------------------------+
| Sun, 25 December 2022 |
+--------------------------------------------+ 数値日付
数値の日付を入力すると、次のようになります。
SELECT TO_CHAR(20200101); 結果:
ERROR 3047 (HY000): Invalid argument error: data type of first argument must be type date/datetime/time or string in function to_char.
無効な日付
日付が無効な場合は、TO_CHAR() nullを返します 警告付き:
SELECT TO_CHAR('2020-01-51'); 結果:
+-----------------------+
| TO_CHAR('2020-01-51') |
+-----------------------+
| NULL |
+-----------------------+
1 row in set, 1 warning (0.001 sec) 警告を確認しましょう:
SHOW WARNINGS; 結果:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
無効なフォーマット文字列
フォーマット文字列が無効な場合は、TO_CHAR() エラーを返します:
SELECT TO_CHAR('2020-01-01', 'wow'); 結果:
ERROR 3047 (HY000): Invalid argument error: date format not recognized at wow in function to_char.
ヌル形式の文字列
TO_CHAR() nullを返します フォーマット文字列がnullの場合 :
SELECT TO_CHAR('2020-01-01', null); 結果:
+-----------------------------+
| TO_CHAR('2020-01-01', null) |
+-----------------------------+
| NULL |
+-----------------------------+ 引数の数が無効です
無効な数の引数を渡す(または引数を渡さない)と、エラーが発生します:
SELECT TO_CHAR(); 結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_CHAR'