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'