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

MariaDBでのTIME_TO_SEC()のしくみ

    MariaDBでは、TIME_TO_SEC() は、秒に変換された時刻引数を返す組み込みの日付と時刻の関数です。

    構文

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

    TIME_TO_SEC(time)

    time は秒に変換される時間値です。

    次に例を示します:

    SELECT TIME_TO_SEC('00:01:00');

    結果:

    +-------------------------+
    | TIME_TO_SEC('00:01:00') |
    +-------------------------+
    |                      60 |
    +-------------------------+

    ここに、他のいくつかの時間値があります:

    SELECT 
        TIME_TO_SEC('01:00:00'),
        TIME_TO_SEC('15:37:46');

    結果:

    +-------------------------+-------------------------+
    | TIME_TO_SEC('01:00:00') | TIME_TO_SEC('15:37:46') |
    +-------------------------+-------------------------+
    |                    3600 |                   56266 |
    +-------------------------+-------------------------+

    マイクロ秒

    TIME_TO_SEC() マイクロ秒をサポート:

    SELECT TIME_TO_SEC('00:01:00.123456');

    結果:

    +--------------------------------+
    | TIME_TO_SEC('00:01:00.123456') |
    +--------------------------------+
    |                      60.123456 |
    +--------------------------------+

    より長い時間

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

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

    SELECT TIME_TO_SEC('838:59:59');

    結果:

    +--------------------------+
    | TIME_TO_SEC('838:59:59') |
    +--------------------------+
    |                  3020399 |
    +--------------------------+

    負の時間値

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

    SELECT TIME_TO_SEC('-820:38:15');

    結果:

    +---------------------------+
    | TIME_TO_SEC('-820:38:15') |
    +---------------------------+
    |                  -2954295 |
    +---------------------------+

    範囲外の時間

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

    SELECT TIME_TO_SEC('920:38:15');

    結果:

    +--------------------------+
    | TIME_TO_SEC('920:38:15') |
    +--------------------------+
    |                  3020399 |
    +--------------------------+
    1 row in set, 1 warning (0.002 sec)

    警告を確認しましょう:

    SHOW WARNINGS;

    結果:

    +---------+------+---------------------------------------------+
    | Level   | Code | Message                                     |
    +---------+------+---------------------------------------------+
    | Warning | 1292 | Truncated incorrect time value: '920:38:15' |
    +---------+------+---------------------------------------------+

    無効な引数

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

    SELECT TIME_TO_SEC('Homer');

    結果:

    +----------------------+
    | TIME_TO_SEC('Homer') |
    +----------------------+
    |                 NULL |
    +----------------------+
    1 row in set, 1 warning (0.000 sec)

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

    SHOW WARNINGS;

    結果:

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

    引数がありません

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

    SELECT TIME_TO_SEC();

    結果:

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

    そして別の例:

    SELECT TIME_TO_SEC('10:09:10', 2);

    結果:

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

    1. OracleDatabaseで即時実行を使用してテーブルDDLを作成するパート2

    2. 複数の日時値の合計を取得するにはどうすればよいですか?

    3. PostgreSQL列fooは存在しません。fooは値です。

    4. MySQLで結果セットをループする