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

MariaDBの時間値から時間を取得する4つの関数

    以下は、MariaDBの時刻値から時間を返すことができる4つの関数です。

    HOUR() 機能

    HOUR() 関数は、指定されたTIMEの時間を返します またはDATETIME 表現。 1つの引数を受け入れます。これは、時間を抽出する時間です。

    例:

    SELECT HOUR('03:45:30');

    結果:

    +------------------+
    | HOUR('03:45:30') |
    +------------------+
    |                3 |
    +------------------+

    時刻の値の場合、0の範囲の数値として時間を返します。 23へ 。ただし、TIMEの範囲 値ははるかに大きくなる可能性があるため、戻り値は23よりもはるかに大きくなる可能性があります。 。具体的には、TIME 値の範囲は'-838:59:59.999999'です。 to '838:59:59.999999'

    時間の部分が大きい例を次に示します。

    SELECT HOUR('838:45:30');

    結果:

    +-------------------+
    | HOUR('838:45:30') |
    +-------------------+
    |               838 |
    +-------------------+

    時間がTIMEの許容範囲外の場合 値の場合、戻り値は838です。 警告付き。

    TIME 値は負になることもあります。このような場合、HOUR() 正の値を返します。

    EXTRACT() 機能

    EXTRACT() 関数を使用すると、日付/時刻の値から指定された単位を抽出できます。したがって、これを使用して、時間値から時間(および他の単位)を抽出できます。

    例:

    SELECT EXTRACT(HOUR FROM '10:47:01');

    結果:

    +-------------------------------+
    | EXTRACT(HOUR FROM '10:47:01') |
    +-------------------------------+
    |                            10 |
    +-------------------------------+

    TIME_FORMAT() 機能

    TIME_FORMAT() 関数を使用すると、フォーマット文字列に基づいて時間値をフォーマットできます。 format文字列は、時刻のフォーマット方法を指定します。

    したがって、この関数を使用して、時刻から時(および分と秒)を返すことができます。時間を返すためのさまざまなオプションがあります。

    さまざまな形式で時間を返す例を次に示します。

    SELECT 
        TIME_FORMAT('18:45:30', '%H') AS '%H',
        TIME_FORMAT('18:45:30', '%h') AS '%h',
        TIME_FORMAT('18:45:30', '%I') AS '%I',
        TIME_FORMAT('18:45:30', '%k') AS '%k',
        TIME_FORMAT('18:45:30', '%l') AS '%l';

    結果:

    +------+------+------+------+------+
    | %H   | %h   | %I   | %k   | %l   |
    +------+------+------+------+------+
    | 18   | 06   | 06   | 18   | 6    |
    +------+------+------+------+------+

    これらの各フォーマット指定子の説明は次のとおりです。

    フォーマット指定子 説明
    %H 00〜23の間に2桁の時間。
    %h 01から12までの2桁の時間。
    %I 01から12までの2桁の時間。
    %k 0〜23の間に1桁の時間。
    %l 1〜12の間に1桁の時間。

    TIME_FORMAT() 関数は、DATE_FORMAT()で使用できるフォーマット文字列のサブセットを受け入れます 働き。 DATE_FORMAT()で使用できるフォーマット文字列/指定子の完全なリストについては、MariaDBフォーマット文字列を参照してください。 。 TIME_FORMAT() 関数は、時間、分、および秒のフォーマット指定子のみを受け入れます。その他の形式指定子は、nullになります。 または0 返送されます。

    DATE_FORMAT() 機能

    DATE_FORMAT() 関数を使用すると、フォーマット文字列に基づいて日付または日時の値をフォーマットできます。フォーマット文字列は、日付/時刻のフォーマット方法を指定します。

    したがって、TIME_FORMAT()で使用したものと同じ形式指定子を使用できます。 前の例の関数。ただし、DATE_FORMAT() TIMEを受け入れません 値なので、DATETIMEを渡す必要があります 値。

    SELECT 
        DATE_FORMAT('2023-01-01 18:45:30', '%H') AS '%H',
        DATE_FORMAT('2023-01-01 18:45:30', '%h') AS '%h',
        DATE_FORMAT('2023-01-01 18:45:30', '%I') AS '%I',
        DATE_FORMAT('2023-01-01 18:45:30', '%k') AS '%k',
        DATE_FORMAT('2023-01-01 18:45:30', '%l') AS '%l';

    結果:

    +------+------+------+------+------+
    | %H   | %h   | %I   | %k   | %l   |
    +------+------+------+------+------+
    | 18   | 06   | 06   | 18   | 6    |
    +------+------+------+------+------+

    TIMEだけを渡す 値は、この関数では完全にはカットされません:

    SELECT 
        DATE_FORMAT('18:45:30', '%H') AS '%H',
        DATE_FORMAT('18:45:30', '%h') AS '%h',
        DATE_FORMAT('18:45:30', '%I') AS '%I',
        DATE_FORMAT('18:45:30', '%k') AS '%k',
        DATE_FORMAT('18:45:30', '%l') AS '%l';

    結果:

    +------+------+------+------+------+
    | %H   | %h   | %I   | %k   | %l   |
    +------+------+------+------+------+
    | NULL | NULL | NULL | NULL | NULL |
    +------+------+------+------+------+
    1 row in set, 5 warnings (0.000 sec)

    警告を表示する:

    SHOW WARNINGS;

    結果:

    +---------+------+--------------------------------------+
    | Level   | Code | Message                              |
    +---------+------+--------------------------------------+
    | Warning | 1292 | Incorrect datetime value: '18:45:30' |
    | Warning | 1292 | Incorrect datetime value: '18:45:30' |
    | Warning | 1292 | Incorrect datetime value: '18:45:30' |
    | Warning | 1292 | Incorrect datetime value: '18:45:30' |
    | Warning | 1292 | Incorrect datetime value: '18:45:30' |
    +---------+------+--------------------------------------+

    1. MySQLクエリ監視bashスクリプトを作成する

    2. 生成された列をSQLiteのテーブルに追加する

    3. Unixエポックをタイムスタンプに変換する方法

    4. MariaDBSkySQLを使用してクラウドでより高く上昇