MariaDBでは、DAY() DAYOFMONTH()の同義語です 。指定された日付からの日を返します。
1つの引数を受け入れます。これは、その月の日を返したい日付です。
結果は1の範囲になります 31へ 。ただし、日付にゼロデイ部分がある場合(たとえば、'0000-00-00' または'2021-00-00' )、結果は0です。 。
構文
構文は次のようになります:
DAY(date)
date は、その日を抽出する日付です。
例
次に例を示します:
SELECT DAY('2045-05-18'); 結果:
+-------------------+
| DAY('2045-05-18') |
+-------------------+
| 18 |
+-------------------+ 日時の値
日時の値でも機能します:
SELECT DAY('2045-05-18 01:10:15'); 結果:
+----------------------------+
| DAY('2045-05-18 01:10:15') |
+----------------------------+
| 18 |
+----------------------------+ ゼロデイ
日付にゼロデイを使用する例を次に示します。
SELECT DAY('0000-00-00'); 結果:
+-------------------+
| DAY('0000-00-00') |
+-------------------+
| 0 |
+-------------------+ 数値日付
日付として意味がある限り、日付を数値として渡すこともできます。
例
SELECT DAY(20220308); 結果:
+---------------+ | DAY(20220308) | +---------------+ | 8 | +---------------+
または、次の場合でも(2桁の年を使用):
SELECT DAY(220308); 結果:
+-------------+ | DAY(220308) | +-------------+ | 8 | +-------------+
しかし、それは日付として意味をなさなければなりません。日の部分を無効な日に増やすと、次のようになります。
SELECT DAY(220358); 結果:
+-------------+ | DAY(220358) | +-------------+ | NULL | +-------------+
その他の区切り文字
日付には他の区切り文字を使用できます。 MariaDBは、日付の区切り文字に関しては非常に寛容です。いくつかの有効な例を次に示します。
SELECT
DAY('2028/12/30'),
DAY('2028,12,30'),
DAY('2028:12:30'),
DAY('2028;12!30'); 結果(垂直出力を使用):
DAY('2028/12/30'): 30
DAY('2028,12,30'): 30
DAY('2028:12:30'): 30
DAY('2028;12!30'): 30 現在の日付
NOW()を渡すことができます 現在の日付を使用する日付引数として:
SELECT
NOW(),
DAY(NOW()); 結果:
+---------------------+------------+ | NOW() | DAY(NOW()) | +---------------------+------------+ | 2021-05-13 09:41:03 | 13 | +---------------------+------------+
無効な引数
無効な引数が渡されると、DAY() nullを返します :
SELECT DAY('Oops!'); 結果:
+--------------+
| DAY('Oops!') |
+--------------+
| NULL |
+--------------+ 引数がありません
DAY()を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:
SELECT DAY(); 結果:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
そして別の例:
SELECT DAY('2030-01-25', '2045-05-08'); 結果:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '2045-05-08')' at line 1