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

DAYOFYEAR()の例– MySQL

    MySQLでクエリを実行する場合は、DAYOFYEAR()を使用できます。 日付から年の日を返す関数。

    この関数は1つの引数を受け入れ、 1の間の値を返します。 および366 、引数の日の部分が表す年の曜日によって異なります。

    構文

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

    DAYOFYEAR(date)
    

    date は、その年の日を返す日付値です。

    実例を示します。

    SELECT 
        DAYOFYEAR('2019-01-01') AS 'Date 1',
        DAYOFYEAR('2019-12-31') AS 'Date 2';
    

    結果:

    +--------+--------+
    | Date 1 | Date 2 |
    +--------+--------+
    |      1 |    365 |
    +--------+--------+
    

    この例では、適切な効果を示すために、この関数を2つの異なる日付に2回実行します。1つは年の初め、もう1つは年の終わりです。

    DAYOFYEAR()とDAYOFMONTH()

    DAYOFYEAR()の違いを示す例を次に示します。 およびDAYOFMONTH() 機能。

    SET @date = '2019-10-03';
    SELECT 
        @date,
        DAYOFMONTH(@date) AS 'Day of Month',
        DAYOFYEAR(@date) AS 'Day of Year';
    

    結果:

    +------------+--------------+-------------+
    | @date      | Day of Month | Day of Year |
    +------------+--------------+-------------+
    | 2019-10-03 |            3 |         276 |
    +------------+--------------+-------------+
    

    DAYOFMONTH() 関数は1の間の値を返します および31 (または 0 月の日を表すゼロデイ部分のある日付の場合)。 1にリセットされます 毎月初めに。

    DAYOFYEAR() 一方、関数は 1の間の値を返します および366 1にリセットされます 毎年の初めに。

    データベースの例

    DAYOFYEAR()の使用例を次に示します。 データベースにクエリを実行する場合:

    USE sakila;
    SELECT
      payment_date AS 'Date/Time',
      DAYOFYEAR(payment_date) AS 'Day of Year'
    FROM payment
    WHERE payment_id = 1;
    

    結果:

    +---------------------+-------------+
    | Date/Time           | Day of Year |
    +---------------------+-------------+
    | 2005-05-25 11:30:37 |         145 |
    +---------------------+-------------+
    

    現在の日付/時刻

    これは、現在の日時から日の部分を抽出する例です(NOW()を使用して返されます 関数)。

    SELECT 
        NOW(),
        DAYOFYEAR(NOW());
    

    結果:

    +---------------------+------------------+
    | NOW()               | DAYOFYEAR(NOW()) |
    +---------------------+------------------+
    | 2018-06-26 08:23:04 |              177 |
    +---------------------+------------------+
    

    これを行う別の方法は、CURDATE()を使用することです。 関数。日付のみを返します(時刻は返しません)。

    SELECT 
        CURDATE(),
        DAYOFYEAR(CURDATE()); 
    

    結果:

    +------------+----------------------+
    | CURDATE()  | DAYOFYEAR(CURDATE()) |
    +------------+----------------------+
    | 2018-06-26 |                  177 |
    +------------+----------------------+
    

    1. PL / SQLパッケージ、プロシージャ、または関数が使用されているかどうかをどのように判断できますか?

    2. 別のテーブルにないテーブルから選択する

    3. MySQLとPHP:キリル文字を使用したUTF-8

    4. oraclesqlスクリプトスプールファイルの作成方法