sql >> データベース >  >> RDS >> MariaDB

MariaDBでのTO_CHAR()のしくみ

    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'

    1. MySQL-IN()内のORDERBY値

    2. MySQLデータベースの一般的な問題を修正する方法は?

    3. Oracle SQL:Selectステートメントを使用した挿入でシーケンスを使用

    4. OracleのROWIDTOCHAR()関数