Di MariaDB, YEAR()
adalah fungsi tanggal dan waktu bawaan yang mengembalikan tahun dari ekspresi tanggal tertentu.
Itu menerima satu argumen, yang merupakan tanggal Anda ingin mengekstrak tahun dari.
Ini mengembalikan tahun sebagai angka dalam kisaran 1000
ke 9999
. Untuk tanggal nol (mis. 0000-00-00
), hasilnya adalah 0
.
Sintaks
Sintaksnya seperti ini:
YEAR(date)
Dimana date
adalah ekspresi tanggal untuk mendapatkan tahun.
Contoh
Ini contohnya:
SELECT YEAR('2030-08-01');
Hasil:
+--------------------+| TAHUN('2030-08-01') |+--------------------+| 2030 |+--------------------+
Nilai Tanggal-waktu
Ini juga berfungsi dengan nilai datetime:
SELECT YEAR('2030-08-01 10:30:45');
Hasil:
+-----------------------------+| TAHUN('2030-08-01 10:30:45') |+------------------------------+| 2030 |+-----------------------------+
Tanggal Nol
Tanggal nol menghasilkan 0
.
Contoh:
SELECT YEAR('0000-00-00');
Hasil:
+--------------------+| TAHUN('0000-00-00') |+--------------------+| 0 |+--------------------+
Tanggal Numerik
Dimungkinkan juga untuk melewatkan tanggal sebagai angka, asalkan masuk akal sebagai tanggal.
Contoh
SELECT YEAR(20301125);
Hasil:
+----------------+| TAHUN (20301125) |+----------------+| 2030 |+----------------+
Atau bahkan yang berikut (yang menggunakan tahun dua digit):
SELECT YEAR(301125);
Hasil:
+-------------+| TAHUN (301125) |+--------------+| 2030 |+--------------+
Tapi itu harus masuk akal sebagai kencan. Inilah yang terjadi jika saya menambah bagian hari menjadi hari yang tidak valid:
SELECT YEAR(20301135);
Hasil:
+----------------+| TAHUN (20301135) |+----------------+| NULL |+----------------+1 baris di set, 1 peringatan (0,000 detik)
Kita dapat memeriksa peringatan seperti ini:
SHOW WARNINGS;
Hasil:
+---------+------+----------------------------- ---------+| tingkat | Kode | Pesan |+---------+-------+--------------------------------------- --------+| Peringatan | 1292 | Nilai datetime salah:'20301135' |+---------+------+------------------------ --------------+
Pembatas Lainnya
Anda dapat menggunakan pembatas lain untuk tanggal. MariaDB cukup pemaaf dalam hal pembatas tanggal. Berikut adalah beberapa contoh yang valid:
SELECT
YEAR('2030/06/25'),
YEAR('2030,06,25'),
YEAR('2030:06:25'),
YEAR('2030;06!25');
Hasil (menggunakan keluaran vertikal):
YEAR('2030/06/25'):2030YEAR('2030,06,25'):2030YEAR('2030:06:25'):2030YEAR('2030;06!25'):2030Tanggal Saat Ini
Kita dapat melewati
NOW()
sebagai argumen datetime untuk menggunakan tanggal saat ini:SELECT NOW(), YEAR(NOW());
Hasil:
+---------------------+-------------+| SEKARANG() | TAHUN(SEKARANG()) |+---------------------+-------------+| 2021-05-18 08:55:02 | 2021 |+---------------------+-------------+Argumen Tidak Valid
Saat melewati argumen yang tidak valid,
YEAR()
mengembalikannull
:SELECT YEAR('2030-65-78');
Hasil:
+--------------------+| TAHUN('2030-65-78') |+------+| NULL |+--------------------+1 baris di set, 1 peringatan (0,001 detik)Periksa peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+----------------------------- -----------+| tingkat | Kode | Pesan |+---------+-------+--------------------------------------- ----------+| Peringatan | 1292 | Nilai datetime salah:'2030-65-78' |+---------+------+-------------------- --------------------+Argumen Tidak Ada
Memanggil
YEAR()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:SELECT YEAR();
Hasil:
ERROR 1064 (42000):Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MariaDB Anda untuk sintaks yang tepat untuk digunakan di dekat ')' di baris 1Dan contoh lain:
SELECT YEAR('2030-12-10', '2031-12-10');
Hasil:
ERROR 1064 (42000):Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MariaDB Anda untuk sintaks yang tepat untuk digunakan di dekat ' '2031-12-10')' di baris 1