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

MariaDBでのTIME_FORMAT()のしくみ

    MariaDBでは、TIME_FORMAT() は、指定されたフォーマット文字列に従って時刻値をフォーマットする組み込みの日付と時刻の関数です。

    DATE_FORMAT()と同様に機能します 関数。ただし、フォーマット文字列には、時間、分、秒のフォーマット指定子のみを含めることができます。

    2つの引数が必要です。時間とフォーマット文字列。

    構文

    構文は次のようになります:

    TIME_FORMAT(time,format)

    time 時間の値とformat フォーマット文字列です。受け入れ可能なフォーマット指定子のリストについては、MariaDBフォーマット文字列を参照してください。前述のように、時間、分、秒のフォーマット指定子のみが受け入れられます。他のすべての値はnullを返します 。

    次に例を示します:

    SELECT TIME_FORMAT('10:30:45', '%H %i %S');

    結果:

    +-------------------------------------+
    | TIME_FORMAT('10:30:45', '%H %i %S') |
    +-------------------------------------+
    | 10 30 45                            |
    +-------------------------------------+

    ここでも同じですが、今回はより複雑な形式の文字列を提供します:

    SELECT TIME_FORMAT(
        '10:30:45', 
        '%H hours, %i minutes, and %S seconds'
        )
    AS Result;

    結果:

    +--------------------------------------+
    | Result                               |
    +--------------------------------------+
    | 10 hours, 30 minutes, and 45 seconds |
    +--------------------------------------+

    より長い時間

    TIME 値の範囲は'-838:59:59.999999'です。 to '838:59:59.999999'

    したがって、時間の部分は23よりもはるかに高くなる可能性があります :

    SELECT TIME_FORMAT(
        '810:30:45', 
        '%H hours, %i minutes, and %S seconds'
        )
    AS Result;

    結果:

    +---------------------------------------+
    | Result                                |
    +---------------------------------------+
    | 810 hours, 30 minutes, and 45 seconds |
    +---------------------------------------+

    負の時間値

    時間値が負の例を次に示します。

    SELECT TIME_FORMAT(
        '-810:30:45', 
        '%H hours, %i minutes, and %S seconds'
        )
    AS Result;

    結果:

    +----------------------------------------+
    | Result                                 |
    +----------------------------------------+
    | -810 hours, 30 minutes, and 45 seconds |
    +----------------------------------------+

    範囲外の時間

    ただし、範囲外の時間値を指定すると、警告とともにその範囲の上限が返されます。

    SELECT TIME_FORMAT(
        '910:30:45', 
        '%H hours, %i minutes, and %S seconds'
        )
    AS Result;

    結果:

    +---------------------------------------+
    | Result                                |
    +---------------------------------------+
    | 838 hours, 59 minutes, and 59 seconds |
    +---------------------------------------+
    1 row in set, 1 warning (0.003 sec)

    警告を確認しましょう:

    SHOW WARNINGS;

    結果:

    +---------+------+---------------------------------------------+
    | Level   | Code | Message                                     |
    +---------+------+---------------------------------------------+
    | Warning | 1292 | Truncated incorrect time value: '910:30:45' |
    +---------+------+---------------------------------------------+

    無効な引数

    無効な引数が渡された場合、TIME_FORMAT() nullを返します 警告付き:

    SELECT TIME_FORMAT('Homer', 'Simpson');

    結果:

    +---------------------------------+
    | TIME_FORMAT('Homer', 'Simpson') |
    +---------------------------------+
    | NULL                            |
    +---------------------------------+
    1 row in set, 1 warning (0.009 sec)

    警告を確認してください:

    SHOW WARNINGS;

    結果:

    +---------+------+-------------------------------+
    | Level   | Code | Message                       |
    +---------+------+-------------------------------+
    | Warning | 1292 | Incorrect time value: 'Homer' |
    +---------+------+-------------------------------+

    無効なフォーマット文字列

    フォーマット文字列には、時間、分、秒のフォーマット指定子のみを含めることができます。その他の形式指定子は、nullになります。 返される:

    SELECT TIME_FORMAT('10:30:45', '%M %W');

    結果:

    +----------------------------------+
    | TIME_FORMAT('10:30:45', '%M %W') |
    +----------------------------------+
    | NULL                             |
    +----------------------------------+

    引数がありません

    TIME_FORMAT()を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:

    SELECT TIME_FORMAT();

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_FORMAT'

    そして別の例:

    SELECT TIME_FORMAT('10:09:10');

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_FORMAT'

    1. MySQLでデータベースを作成する方法

    2. ユーザー設定のためのデータベース設計

    3. Hibernateを使用した配列のマッピング

    4. 保存されたデータの奇妙な文字エンコード、古いスクリプトはそれらにうまく表示されています新しいものは表示されません