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'