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

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

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

    曜日を抽出する日付である1つの引数を受け入れます。

    日を数値として返します。インデックスの番号付けは、ODBC標準(1)に準拠しています。 =日曜日、2 =月曜日など)。これは、WEEKDAY()とは対照的です。 、ここで0 =月曜日、1 =火曜日など

    構文

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

    DAYOFWEEK(date)

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

    次に例を示します:

    SELECT DAYOFWEEK('2030-01-25');

    結果:

    +-------------------------+
    | DAYOFWEEK('2030-01-25') |
    +-------------------------+
    |                       6 |
    +-------------------------+

    曜日名との比較

    DAYNAME()と一緒にもう1つあります 日の名前を返すには:

    SELECT 
        DAYOFWEEK('2030-01-20'),
        DAYNAME('2030-01-20');

    結果:

    +-------------------------+-----------------------+
    | DAYOFWEEK('2030-01-20') | DAYNAME('2030-01-20') |
    +-------------------------+-----------------------+
    |                       1 | Sunday                |
    +-------------------------+-----------------------+

    前述のように、インデックスの番号付けは日曜日の1から始まります。

    土曜日です:

    SELECT 
        DAYOFWEEK('2030-01-19'),
        DAYNAME('2030-01-19');

    結果:

    +-------------------------+-----------------------+
    | DAYOFWEEK('2030-01-19') | DAYNAME('2030-01-19') |
    +-------------------------+-----------------------+
    |                       7 | Saturday              |
    +-------------------------+-----------------------+

    日時の値

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

    SELECT DAYOFWEEK('2030-01-24 10:30:45');

    結果:

    +----------------------------------+
    | DAYOFWEEK('2030-01-24 10:30:45') |
    +----------------------------------+
    |                                5 |
    +----------------------------------+

    ゼロデイ

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

    例:

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

    結果:

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

    数値日付

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

    SELECT DAYOFWEEK(20300125);

    結果:

    +---------------------+
    | DAYOFWEEK(20300125) |
    +---------------------+
    |                   6 |
    +---------------------+

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

    SELECT DAYOFWEEK(300125);

    結果:

    +-------------------+
    | DAYOFWEEK(300125) |
    +-------------------+
    |                 6 |
    +-------------------+

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

    SELECT DAYOFWEEK(20300135);

    結果:

    +---------------------+
    | DAYOFWEEK(20300135) |
    +---------------------+
    |                NULL |
    +---------------------+

    その他の区切り文字

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

    SELECT 
        DAYOFWEEK('2030/01/25'),
        DAYOFWEEK('2030,01,25'),
        DAYOFWEEK('2030:01:25'),
        DAYOFWEEK('2030;01!25');

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

    DAYOFWEEK('2030/01/25'): 6
    DAYOFWEEK('2030,01,25'): 6
    DAYOFWEEK('2030:01:25'): 6
    DAYOFWEEK('2030;01!25'): 6

    現在の日付

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

    SELECT 
        NOW(),
        DAYOFWEEK(NOW());

    結果:

    +---------------------+------------------+
    | NOW()               | DAYOFWEEK(NOW()) |
    +---------------------+------------------+
    | 2021-05-15 09:17:44 |                7 |
    +---------------------+------------------+

    無効な引数

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

    SELECT DAYOFWEEK('Homer');

    結果:

    +--------------------+
    | DAYOFWEEK('Homer') |
    +--------------------+
    |               NULL |
    +--------------------+

    引数がありません

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

    SELECT DAYOFWEEK();

    結果:

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

    そして別の例:

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

    結果:

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

    1. MariaDBに存在しない場合にのみテーブルを作成する

    2. postgresqlエラーPANIC:有効なチェックポイントレコードを見つけることができませんでした

    3. SQLクエリ列が存在しませんエラー

    4. 新しいAMDプロセッサフ​​ァミリは、新しいIntelプロセッサとよく比較されます