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

EXTRACT()の例– MySQL

    MySQLでは、EXTRACT()を使用できます 日付からパーツを抽出する関数。たとえば、年の部分、月の部分、日の部分などを抽出できます。また、分、秒、マイクロ秒などの時間コンポーネントから部分を抽出することもできます。

    この記事には、デモンストレーションの例が含まれています。

    構文

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

    EXTRACT(unit FROM date)
    

    unit 抽出する日付部分であり、date その部分を抽出する日付値です。

    有効なユニット指定子のリストについては、この記事の下部にある表を参照してください。

    例1

    関数の基本的な使用法を示す例を次に示します。

    SELECT EXTRACT(YEAR FROM '2019-01-01') AS 'Result';
    

    結果:

    +--------+
    | Result |
    +--------+
    |   2019 |
    +--------+
    

    例2–その他の日付パーツ

    ここでは、日付からさまざまな日付部分を抽出します。

    SET @date = '2019-10-03';
    SELECT 
        EXTRACT(DAY FROM @date) AS 'Day',
        EXTRACT(MONTH FROM @date) AS 'Month',
        EXTRACT(YEAR FROM @date) AS 'Year';
    

    結果:

    +------+-------+------+
    | Day  | Month | Year |
    +------+-------+------+
    |    3 |    10 | 2019 |
    +------+-------+------+
    

    例3–時間部分の抽出

    ここでは、日付からさまざまな時間部分を抽出します。

    SET @date = '2019-10-03 12:35:05.123456';
    SELECT 
        EXTRACT(HOUR FROM @date) AS 'Hours',
        EXTRACT(MINUTE FROM @date) AS 'Minutes',
        EXTRACT(SECOND FROM @date) AS 'Seconds',
        EXTRACT(MICROSECOND FROM @date) AS 'Microseconds';
    

    結果:

    +-------+---------+---------+--------------+
    | Hours | Minutes | Seconds | Microseconds |
    +-------+---------+---------+--------------+
    |    12 |      35 |       5 |       123456 |
    +-------+---------+---------+--------------+
    

    例4–ユニット指定子の組み合わせ

    次のように、ユニット指定子を組み合わせることもできます。

    SET @date = '2019-10-03 12:35:05.123456';
    SELECT 
        EXTRACT(HOUR_MICROSECOND FROM @date) AS 'Result';
    

    結果:

    +--------------+
    | Result       |
    +--------------+
    | 123505123456 |
    +--------------+
    

    この例では、時間の部分からマイクロ秒の部分まですべてが返されます。

    データベースの例

    データベースの列から年と月を抽出する例を次に示します。

    USE sakila;
    SELECT
      payment_date AS 'Date/Time',
      EXTRACT(YEAR_MONTH FROM payment_date) AS 'Year/Month'
    FROM payment
    WHERE payment_id = 1;
    

    結果:

    +---------------------+------------+
    | Date/Time           | Year/Month |
    +---------------------+------------+
    | 2005-05-25 11:30:37 |     200505 |
    +---------------------+------------+
    

    現在の日付/時刻

    ここでは、CURDATE()で生成された日付から月の部分を抽出します 機能。

    SELECT 
        CURDATE(),
        EXTRACT(MONTH FROM CURDATE());
    

    結果:

    +------------+-------------------------------+
    | CURDATE()  | EXTRACT(MONTH FROM CURDATE()) |
    +------------+-------------------------------+
    | 2018-06-26 |                             6 |
    +------------+-------------------------------+
    

    この例では、現在の日時(NOW()で生成されたもの)から時間の部分を抽出します。 関数)。

    SELECT 
        NOW(),
        EXTRACT(HOUR FROM NOW());
    

    結果:

    +---------------------+--------------------------+
    | NOW()               | EXTRACT(HOUR FROM NOW()) |
    +---------------------+--------------------------+
    | 2018-06-26 09:01:46 |                        9 |
    +---------------------+--------------------------+
    

    期待値

    次の表に、有効な単位値と予想される形式を示します。

    unit 価値 予想されるexpr フォーマット
    MICROSECOND マイクロ秒
    2番目
    MINUTE
    時間 時間
    QUARTER 四半期
    SECOND_MICROSECOND 「SECONDS.MICROSECONDS」
    MINUTE_MICROSECOND 「MINUTES:SECONDS.MICROSECONDS」
    MINUTE_SECOND 「MINUTES:SECONDS」
    HOUR_MICROSECOND 「HOURS:MINUTES:SECONDS.MICROSECONDS」
    HOUR_SECOND 「HOURS:MINUTES:SECONDS」
    HOUR_MINUTE 「HOURS:MINUTES」
    DAY_MICROSECOND 「DAYSHOURS:MINUTES:SECONDS.MICROSECONDS」
    DAY_SECOND 「DAYSHOURS:MINUTES:SECONDS」
    DAY_MINUTE 「DAYSHOURS:MINUTES」
    DAY_HOUR 「DAYSHOURS」
    YEAR_MONTH 「YEARS-MONTHS」

    1. SQL Serverのストアドプロシージャ/関数で入出力パラメータを宣言する方法は?

    2. Pythonを介してPostgreSQLに列コメントを挿入するにはどうすればよいですか?

    3. SQLServerデータベースの列を含むすべてのデフォルトの制約を一覧表示する方法-SQLServer/TSQLチュートリアルパート92

    4. MySQLの高いCPU使用率