MariaDBでは、YEAR() は、指定された日付式から年を返す組み込みの日付と時刻の関数です。
1つの引数を受け入れます。これは、年を抽出する日付です。
1000の範囲の数値として年を返します 9999へ 。日付がゼロの場合(例:0000-00-00 )、結果は0です。 。
構文
構文は次のようになります:
YEAR(date)
date 年を取得する日付式です。
例
次に例を示します:
SELECT YEAR('2030-08-01'); 結果:
+--------------------+
| YEAR('2030-08-01') |
+--------------------+
| 2030 |
+--------------------+ 日時の値
日時の値でも機能します:
SELECT YEAR('2030-08-01 10:30:45'); 結果:
+-----------------------------+
| YEAR('2030-08-01 10:30:45') |
+-----------------------------+
| 2030 |
+-----------------------------+ ゼロ日付
日付がゼロの場合、0になります 。
例:
SELECT YEAR('0000-00-00'); 結果:
+--------------------+
| YEAR('0000-00-00') |
+--------------------+
| 0 |
+--------------------+ 数値日付
日付として意味がある限り、日付を数値として渡すこともできます。
例
SELECT YEAR(20301125); 結果:
+----------------+ | YEAR(20301125) | +----------------+ | 2030 | +----------------+
または、次の場合でも(2桁の年を使用):
SELECT YEAR(301125); 結果:
+--------------+ | YEAR(301125) | +--------------+ | 2030 | +--------------+
しかし、それは日付として意味をなさなければなりません。日の部分を無効な日に増やすと、次のようになります。
SELECT YEAR(20301135); 結果:
+----------------+ | YEAR(20301135) | +----------------+ | NULL | +----------------+ 1 row in set, 1 warning (0.000 sec)
警告は次のように確認できます:
SHOW WARNINGS; 結果:
+---------+------+--------------------------------------+ | Level | Code | Message | +---------+------+--------------------------------------+ | Warning | 1292 | Incorrect datetime value: '20301135' | +---------+------+--------------------------------------+
その他の区切り文字
日付には他の区切り文字を使用できます。 MariaDBは、日付の区切り文字に関しては非常に寛容です。いくつかの有効な例を次に示します。
SELECT
YEAR('2030/06/25'),
YEAR('2030,06,25'),
YEAR('2030:06:25'),
YEAR('2030;06!25'); 結果(垂直出力を使用):
YEAR('2030/06/25'): 2030
YEAR('2030,06,25'): 2030
YEAR('2030:06:25'): 2030
YEAR('2030;06!25'): 2030 現在の日付
NOW()を渡すことができます 現在の日付を使用する日時引数として:
SELECT
NOW(),
YEAR(NOW()); 結果:
+---------------------+-------------+ | NOW() | YEAR(NOW()) | +---------------------+-------------+ | 2021-05-18 08:55:02 | 2021 | +---------------------+-------------+
無効な引数
無効な引数が渡されると、YEAR() nullを返します :
SELECT YEAR('2030-65-78'); 結果:
+--------------------+
| YEAR('2030-65-78') |
+--------------------+
| NULL |
+--------------------+
1 row in set, 1 warning (0.001 sec) 警告を確認してください:
SHOW WARNINGS; 結果:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2030-65-78' | +---------+------+----------------------------------------+
引数がありません
YEAR()を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:
SELECT YEAR(); 結果:
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 YEAR('2030-12-10', '2031-12-10'); 結果:
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 ' '2031-12-10')' at line 1