MariaDBでは、LAST_DAY()
は、特定の日付の月末日を返す組み込みの日付と時刻の関数です。
1つの引数を受け入れます。これは、その月の最後の日を検索する日付です。
構文
構文は次のようになります:
LAST_DAY(date)
date
は、その月の最後の日を検索する日付式です。
例
次に例を示します:
SELECT LAST_DAY('2030-02-01');
結果:
+------------------------+ | LAST_DAY('2030-02-01') | +------------------------+ | 2030-02-28 | +------------------------+
この場合、2月の日付を使用しています。実は、2月はその年に28日あります。
日付を次のうるう年にインクリメントすると、次のようになります。
SELECT LAST_DAY('2032-02-01');
結果:
+------------------------+ | LAST_DAY('2032-02-01') | +------------------------+ | 2032-02-29 | +------------------------+
日時の値
日時の値でも機能します:
SELECT LAST_DAY('2030-02-01 10:30:45');
結果:
+---------------------------------+ | LAST_DAY('2030-02-01 10:30:45') | +---------------------------------+ | 2030-02-28 | +---------------------------------+
ゼロ日付
日付がゼロの場合、null
になります 。
例:
SELECT LAST_DAY('0000-00-00');
結果:
+------------------------+ | LAST_DAY('0000-00-00') | +------------------------+ | NULL | +------------------------+
数値日付
日付として意味がある限り、日付を数値として渡すこともできます。
例
SELECT LAST_DAY(20301125);
結果:
+--------------------+ | LAST_DAY(20301125) | +--------------------+ | 2030-11-30 | +--------------------+
または、次の場合でも(2桁の年を使用):
SELECT LAST_DAY(301125);
結果:
+------------------+ | LAST_DAY(301125) | +------------------+ | 2030-11-30 | +------------------+
しかし、それは日付として意味をなさなければなりません。日の部分を無効な日に増やすと、次のようになります。
SELECT LAST_DAY(20301135);
結果:
+--------------------+ | LAST_DAY(20301135) | +--------------------+ | NULL | +--------------------+ 1 row in set, 1 warning (0.000 sec)
警告は次のように確認できます:
SHOW WARNINGS;
結果:
+---------+------+--------------------------------------+ | Level | Code | Message | +---------+------+--------------------------------------+ | Warning | 1292 | Incorrect datetime value: '20301135' | +---------+------+--------------------------------------+
その他の区切り文字
日付には他の区切り文字を使用できます。 MariaDBは、日付の区切り文字に関しては非常に寛容です。いくつかの有効な例を次に示します。
SELECT
LAST_DAY('2030/06/25'),
LAST_DAY('2030,06,25'),
LAST_DAY('2030:06:25'),
LAST_DAY('2030;06!25');
結果(垂直出力を使用):
LAST_DAY('2030/06/25'): 2030-06-30 LAST_DAY('2030,06,25'): 2030-06-30 LAST_DAY('2030:06:25'): 2030-06-30 LAST_DAY('2030;06!25'): 2030-06-30
現在の日付
NOW()
を渡すことができます 現在の日付を使用する日時引数として:
SELECT
NOW(),
LAST_DAY(NOW());
結果:
+---------------------+-----------------+ | NOW() | LAST_DAY(NOW()) | +---------------------+-----------------+ | 2021-05-18 09:39:01 | 2021-05-31 | +---------------------+-----------------+>
無効な引数
無効な引数が渡されると、LAST_DAY()
null
を返します :
SELECT LAST_DAY('2030-65-78');
結果:
+------------------------+ | LAST_DAY('2030-65-78') | +------------------------+ | NULL | +------------------------+ 1 row in set, 1 warning (0.000 sec)
警告を確認してください:
SHOW WARNINGS;
結果:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2030-65-78' | +---------+------+----------------------------------------+
引数がありません
LAST_DAY()
を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:
SELECT LAST_DAY();
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LAST_DAY'
そして別の例:
SELECT LAST_DAY('2030-12-10', '2031-12-10');
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LAST_DAY'