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'