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

MariaDBでのMAKETIME()のしくみ

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

    構文

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

    MAKETIME(hour,minute,second)

    次に例を示します:

    SELECT MAKETIME(08, 30, 45);

    結果:

    +----------------------+
    | MAKETIME(08, 30, 45) |
    +----------------------+
    | 08:30:45             |
    +----------------------+

    そしてもう1つ:

    SELECT MAKETIME(23, 8, 1);

    結果:

    +--------------------+
    | MAKETIME(23, 8, 1) |
    +--------------------+
    | 23:08:01           |
    +--------------------+

    範囲

    hourの場合 引数が-838の範囲外です 838へ 、値は警告とともに切り捨てられます。

    minuteの場合 またはsecond 引数が0の範囲外です 59へ 、結果はnullです 、および警告が表示されます(MariaDBのドキュメントには、範囲が0であると記載されています 60へ 、しかし、これは私のテストには当てはまりません。さらに、MariaDBのドキュメントには、MariaDBの時間値の範囲は'-838:59:59.999999'であるとも記載されています。 to '838:59:59.999999'

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

    SELECT MAKETIME(838, 59, 59.999999);

    結果:

    +------------------------------+
    | MAKETIME(838, 59, 59.999999) |
    +------------------------------+
    | 838:59:59.999999             |
    +------------------------------+

    これらの値はまだ許容範囲内であったため、有効な時間値を取得しました。

    無効な分と秒

    minuteの許容範囲を超えると、次のようになります。 およびsecond 引数:

    SELECT 
        MAKETIME(00, 60, 00),
        MAKETIME(00, 00, 60);

    結果:

    +----------------------+----------------------+
    | MAKETIME(00, 60, 00) | MAKETIME(00, 00, 60) |
    +----------------------+----------------------+
    | NULL                 | NULL                 |
    +----------------------+----------------------+
    1 row in set, 1 warning (0.001 sec)

    結果はnullです 両方とも、警告付き。

    警告を確認しましょう:

    SHOW WARNINGS;

    結果:

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

    無効な時間

    次に、hourで許容範囲外になるとどうなるか見てみましょう。 引数:

    SELECT MAKETIME(900, 00, 00);

    結果:

    +-----------------------+
    | MAKETIME(900, 00, 00) |
    +-----------------------+
    | 838:59:59             |
    +-----------------------+
    1 row in set, 1 warning (0.000 sec)

    このシナリオでは、時間値が時間、分、秒を上限範囲にクリップして返されます。警告も返されます。

    警告を確認しましょう:

    SHOW WARNINGS;

    結果:

    +---------+------+---------------------------------------------+
    | Level   | Code | Message                                     |
    +---------+------+---------------------------------------------+
    | Warning | 1292 | Truncated incorrect time value: '900:00:00' |
    +---------+------+---------------------------------------------+

    引数がありません

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

    SELECT MAKETIME();

    結果:

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

    そして別の例:

    SELECT MAKETIME( 12, 1 );

    結果:

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

    デートをする

    SEC_TO_TIME()も参照してください 秒数から日付値を作成するため。

    MAKEDATE()も参照してください 年と日から日付値を作成するため。


    1. 「ALTERTABLESWITCHステートメントが失敗しました」を修正する方法

    2. SQLServerでデータベースの名前を変更する方法-SQLServer/TSQLチュートリアルパート26

    3. 自己署名証明書を使用して、PostgreSQLSSL接続を錆びた状態で使用する

    4. PythonとMySql:Unicodeとエンコーディング