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

MariaDBでのTIME()のしくみ

    MariaDBでは、TIME() は、指定された時刻または日時式から時刻部分を抽出し、それを文字列として返す組み込みの日時関数です。

    1つの引数を受け入れます。これは、時刻を抽出する時刻または日時の値です。

    構文

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

    TIME(expr)

    expr は、時刻を抽出する時刻または日時の式です。

    デモンストレーションの例を次に示します。

    SELECT TIME('2030-02-01 10:30:45');

    結果:

    +-----------------------------+
    | TIME('2030-02-01 10:30:45') |
    +-----------------------------+
    | 10:30:45                    |
    +-----------------------------+

    時間値

    時間値から時間を抽出する例を次に示します。

    SELECT TIME('10:30:45');

    結果:

    +------------------+
    | TIME('10:30:45') |
    +------------------+
    | 10:30:45         |
    +------------------+

    マイクロ秒

    マイクロ秒を含む例を次に示します。

    SELECT TIME('2030-02-01 10:30:45.123456');

    結果:

    +------------------------------------+
    | TIME('2030-02-01 10:30:45.123456') |
    +------------------------------------+
    | 10:30:45.123456                    |
    +------------------------------------+

    より長い時間

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

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

    SELECT TIME('578:30:45');

    結果:

    +-------------------+
    | TIME('578:30:45') |
    +-------------------+
    | 578:30:45         |
    +-------------------+

    ネガティブタイム

    負の時間は有効です:

    SELECT TIME('-578:30:45');

    結果:

    +--------------------+
    | TIME('-578:30:45') |
    +--------------------+
    | -578:30:45         |
    +--------------------+

    範囲外の時間

    '-838:59:59.999999'の範囲外の時間値 to '838:59:59.999999' 関連する境界で上限があり、警告が含まれています。

    例:

    SELECT TIME('978:30:45');

    結果(垂直出力を使用):

    +-------------------+
    | TIME('978:30:45') |
    +-------------------+
    | 838:59:59         |
    +-------------------+
    1 row in set, 1 warning (0.003 sec)

    警告を確認しましょう:

    SHOW WARNINGS;

    結果(垂直出力を使用):

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

    現在の日付

    NOW()を渡すことができます 現在の時刻を使用する日時引数として:

    SELECT 
        NOW(),
        TIME(NOW());

    結果:

    +---------------------+-------------+
    | NOW()               | TIME(NOW()) |
    +---------------------+-------------+
    | 2021-05-27 10:24:23 | 10:24:23    |
    +---------------------+-------------+

    無効な引数

    無効な引数が渡されると、TIME() nullを返します 警告付き:

    SELECT TIME('Ten Thirty AM');

    結果:

    +-----------------------+
    | TIME('Ten Thirty AM') |
    +-----------------------+
    | NULL                  |
    +-----------------------+
    1 row in set, 1 warning (0.002 sec)

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

    SHOW WARNINGS;

    結果:

    +---------+------+---------------------------------------+
    | Level   | Code | Message                               |
    +---------+------+---------------------------------------+
    | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' |
    +---------+------+---------------------------------------+

    引数がありません

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

    SELECT TIME();

    結果:

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

    そして別の例:

    SELECT TIME('10:30:45', '06:30:45');

    結果:

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1

    1. Oracle Live SQL

    2. オラクルのIN関数へのコンマ区切り値

    3. SQL Server(T-SQL)でサーバー名を返す2つの方法

    4. MariaDBでのWEIGHT_STRING()のしくみ