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

MariaDBでのSEC_TO_TIME()のしくみ

    MariaDBでは、SEC_TO_TIME() は、引数として指定された秒数に基づいて時刻値を返す組み込みの日付と時刻の関数です。

    構文

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

    SEC_TO_TIME(seconds)

    次に例を示します:

    SELECT SEC_TO_TIME(1);

    結果:

    +----------------+
    | SEC_TO_TIME(1) |
    +----------------+
    | 00:00:01       |
    +----------------+

    もう1つあります:

    SELECT SEC_TO_TIME(18520);

    結果:

    +--------------------+
    | SEC_TO_TIME(18520) |
    +--------------------+
    | 05:08:40           |
    +--------------------+

    範囲外秒

    結果の範囲は、時間データ型の範囲に制限されます。引数がその範囲外の値に対応する場合、警告が発生します。 MariaDBの時間値の範囲は、'-838:59:59.999999'です。 to '838:59:59.999999'

    とにかく、許容範囲の上限にある値を持つ時間の例を次に示します。

    SELECT SEC_TO_TIME(3020399);

    結果:

    +----------------------+
    | SEC_TO_TIME(3020399) |
    +----------------------+
    | 838:59:59            |
    +----------------------+

    そして、これが範囲外のものです:

    SELECT SEC_TO_TIME(3020400);

    結果:

    +----------------------+
    | SEC_TO_TIME(3020400) |
    +----------------------+
    | 838:59:59            |
    +----------------------+
    1 row in set, 1 warning (0.000 sec)

    警告は次のとおりです:

    SHOW WARNINGS;

    結果:

    +---------+------+----------------------------------------------+
    | Level   | Code | Message                                      |
    +---------+------+----------------------------------------------+
    | Warning | 1292 | Truncated incorrect seconds value: '3020400' |
    +---------+------+----------------------------------------------+

    マイクロ秒

    マイクロ秒を含めることで、さらに上限に近づくことができます:

    SELECT SEC_TO_TIME(3020399.999999);

    結果:

    +-----------------------------+
    | SEC_TO_TIME(3020399.999999) |
    +-----------------------------+
    | 838:59:59.999999            |
    +-----------------------------+

    否定的な議論

    負の量を指定すると、負の時間値になります。

    例:

    SELECT SEC_TO_TIME(-3020399);

    結果:

    +-----------------------+
    | SEC_TO_TIME(-3020399) |
    +-----------------------+
    | -838:59:59            |
    +-----------------------+

    引数がありません

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

    SELECT SEC_TO_TIME();

    結果:

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

    そして別の例:

    SELECT SEC_TO_TIME( 123, 456 );

    結果:

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

    時間を作る

    MAKETIME()も参照してください 時間、分、秒から時間値を作成します。


    1. R12.2/R12.1アップグレードのためのトップAWR有用なクエリ

    2. ClusterControlを使用して本番環境に対応したMySQLまたはMariaDBGaleraクラスターをデプロイする方法

    3. SQLiteデータベースをExcelに変換するAndroidプログラム

    4. SQLServerの一時テーブルのスコープ