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

DAYOFYEAR()がMariaDBでどのように機能するか

    MariaDBでは、DAYOFYEAR() は、指定された日付から1年の日付を返す組み込みの日付と時刻の関数です。

    1つの引数を受け入れます。これは、その年の日を抽出する日付です。

    1の範囲の数値として日を返します 366へ 。

    構文

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

    DAYOFYEAR(date)

    date は、その年の日を取得する日付です。

    次に例を示します:

    SELECT DAYOFYEAR('2030-12-25');

    結果:

    +-------------------------+
    | DAYOFYEAR('2030-12-25') |
    +-------------------------+
    |                     359 |
    +-------------------------+

    日時の値

    日時の値でも機能します:

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

    結果:

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

    ゼロデイ

    ゼロデイはnullになります 。

    例:

    SELECT DAYOFYEAR('2030-00-00');

    結果:

    +-------------------------+
    | DAYOFYEAR('2030-00-00') |
    +-------------------------+
    |                    NULL |
    +-------------------------+

    数値日付

    日付として意味がある限り、日付を数値として渡すこともできます。

    SELECT DAYOFYEAR(20301125);

    結果:

    +---------------------+
    | DAYOFYEAR(20301125) |
    +---------------------+
    |                 329 |
    +---------------------+

    または、次の場合でも(2桁の年を使用):

    SELECT DAYOFYEAR(301125);

    結果:

    +-------------------+
    | DAYOFYEAR(301125) |
    +-------------------+
    |               329 |
    +-------------------+

    しかし、それは日付として意味をなさなければなりません。日の部分を無効な日に増やすと、次のようになります。

    SELECT DAYOFYEAR(20300135);

    結果:

    +---------------------+
    | DAYOFYEAR(20300135) |
    +---------------------+
    |                NULL |
    +---------------------+

    その他の区切り文字

    日付には他の区切り文字を使用できます。 MariaDBは、日付の区切り文字に関しては非常に寛容です。いくつかの有効な例を次に示します。

    SELECT 
        DAYOFYEAR('2030/06/25'),
        DAYOFYEAR('2030,06,25'),
        DAYOFYEAR('2030:06:25'),
        DAYOFYEAR('2030;06!25');

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

    DAYOFYEAR('2030/06/25'): 176
    DAYOFYEAR('2030,06,25'): 176
    DAYOFYEAR('2030:06:25'): 176
    DAYOFYEAR('2030;06!25'): 176

    現在の日付

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

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

    結果:

    +---------------------+------------------+
    | NOW()               | DAYOFYEAR(NOW()) |
    +---------------------+------------------+
    | 2021-05-16 09:05:57 |              136 |
    +---------------------+------------------+

    無効な引数

    無効な引数が渡されると、DAYOFYEAR() nullを返します :

    SELECT DAYOFYEAR('Friday');

    結果:

    +---------------------+
    | DAYOFYEAR('Friday') |
    +---------------------+
    |                NULL |
    +---------------------+

    引数がありません

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

    SELECT DAYOFYEAR();

    結果:

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

    そして別の例:

    SELECT DAYOFYEAR('2030-01-25', '2045-05-08');

    結果:

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

    1. 不確定な数の列でUNPIVOT

    2. PostgreSQLで2つのスキーマを比較する方法

    3. SQLServerログ配布とディザスタリカバリのインストールと構成-2

    4. PostgreSQLの主キーとしてのUUIDは、インデックスのパフォーマンスを低下させますか?