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

MariaDBでのWEEKDAY()のしくみ

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

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

    日を数値として返します。月曜日のインデックス番号はゼロから始まります(つまり、0 =月曜日、1 =火曜日など)。これは、DAYOFWEEK()とは対照的です。 、ODBC標準(1に準拠) =日曜日、2 =月曜日など)。

    構文

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

    WEEKDAY(date)

    date 曜日を取得する日付です。

    次に例を示します:

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

    結果:

    +-----------------------+
    | WEEKDAY('2030-01-25') |
    +-----------------------+
    |                     4 |
    +-----------------------+

    曜日名との比較

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

    SELECT 
        WEEKDAY('2030-01-21'),
        DAYNAME('2030-01-21');

    結果:

    +-----------------------+-----------------------+
    | WEEKDAY('2030-01-21') | DAYNAME('2030-01-21') |
    +-----------------------+-----------------------+
    |                     0 | Monday                |
    +-----------------------+-----------------------+

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

    これが日曜日です:

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

    結果:

    +-----------------------+-----------------------+
    | WEEKDAY('2030-01-20') | DAYNAME('2030-01-20') |
    +-----------------------+-----------------------+
    |                     6 | Sunday                |
    +-----------------------+-----------------------+

    日時の値

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

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

    結果:

    +--------------------------------+
    | WEEKDAY('2030-01-24 10:30:45') |
    +--------------------------------+
    |                              3 |
    +--------------------------------+

    ゼロデイ

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

    例:

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

    結果:

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

    数値日付

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

    SELECT WEEKDAY(20300125);

    結果:

    +-------------------+
    | WEEKDAY(20300125) |
    +-------------------+
    |                 4 |
    +-------------------+

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

    SELECT WEEKDAY(300125);

    結果:

    +-----------------+
    | WEEKDAY(300125) |
    +-----------------+
    |               4 |
    +-----------------+

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

    SELECT WEEKDAY(20300135);

    結果:

    +-------------------+
    | WEEKDAY(20300135) |
    +-------------------+
    |              NULL |
    +-------------------+

    その他の区切り文字

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

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

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

    WEEKDAY('2030/01/25'): 4
    WEEKDAY('2030,01,25'): 4
    WEEKDAY('2030:01:25'): 4
    WEEKDAY('2030;01!25'): 4

    現在の日付

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

    SELECT 
        NOW(),
        WEEKDAY(NOW());

    結果:

    +---------------------+----------------+
    | NOW()               | WEEKDAY(NOW()) |
    +---------------------+----------------+
    | 2021-05-15 09:44:50 |              5 |
    +---------------------+----------------+

    無効な引数

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

    SELECT WEEKDAY('Homer');

    結果:

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

    引数がありません

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

    SELECT WEEKDAY();

    結果:

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

    そして別の例:

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

    結果:

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

    1. PostgreSQLクエリでラージオブジェクトのサイズを取得しますか?

    2. Oracleでアクティブ/オープン接続を一覧表示するにはどうすればよいですか?

    3. SQLiteの英数字を含む行を返す

    4. Spring、Hibernate、C3P0を使用してマルチテナントWebアプリで接続プールを管理する