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'