Di bawah ini adalah 4 fungsi yang memungkinkan Anda mengembalikan tahun dari tanggal di MariaDB. Tiga fungsi hanya mengembalikan tahun, dan satu mengembalikan tahun dan minggu.
YEAR()
Fungsi
YEAR()
fungsi mengembalikan tahun untuk tanggal tertentu. Hasilnya ada di kisaran 1000
ke 9999
, atau 0
untuk tanggal yang memiliki tahun nol (seperti 0000-00-00
).
Contoh:
SELECT YEAR('2023-07-25');
Hasil:
+--------------------+ | YEAR('2023-07-25') | +--------------------+ | 2023 | +--------------------+
EXTRACT()
Fungsi
fungsi memungkinkan Anda untuk mengekstrak unit tertentu dari tanggal. Oleh karena itu, Anda dapat menggunakannya untuk mengekstrak tahun (serta unit lainnya) dari tanggal.EXTRACT
()
Contoh:
SELECT EXTRACT(YEAR FROM '2023-07-25');
Hasil:
+---------------------------------+ | EXTRACT(YEAR FROM '2023-07-25') | +---------------------------------+ | 2023 | +---------------------------------+
DATE_FORMAT()
Fungsi
DATE_FORMAT()
fungsi memungkinkan Anda untuk memformat tanggal berdasarkan string format. String format menentukan bagaimana tanggal harus diformat.
Karena itu Anda dapat menggunakan fungsi ini untuk mengembalikan tahun (serta unit lainnya) dari tanggal. Ada penentu format yang berbeda untuk mengembalikan tahun dalam format yang berbeda. Misalnya tahun empat digit, tahun dua digit, dll.
Berikut adalah contoh yang mengembalikan tahun dalam berbagai bentuk:
SELECT
DATE_FORMAT('2023-01-01', '%X') AS "%X",
DATE_FORMAT('2023-01-01', '%x') AS "%x",
DATE_FORMAT('2023-01-01', '%Y') AS "%Y",
DATE_FORMAT('2023-01-01', '%y') AS "%y";
Hasil:
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2023 | 2022 | 2023 | 23 | +------+------+------+------+
Perhatikan bahwa %x
mengembalikan nomor tahun yang berbeda dari yang lain.
Berikut adalah deskripsi dari masing-masing penentu format tersebut, yang menjelaskan mengapa %x
mengembalikan hasil yang berbeda:
Penentu Format | Deskripsi |
---|---|
%X | Tahun dengan 4 digit ketika hari pertama dalam seminggu adalah hari Minggu. Digunakan dengan %V . |
%x | Tahun dengan 4 digit ketika hari pertama dalam seminggu adalah Senin. Digunakan dengan %v . |
%Y | Tahun dengan 4 digit. |
%y | Tahun dengan 2 digit. |
Dan berikut penjelasan dari %V
dan %v
sebagaimana dimaksud pada tabel di atas:
Penentu Format | Deskripsi |
---|---|
%V | Nomor minggu (01-53), ketika hari pertama dalam seminggu adalah hari Minggu. Digunakan dengan %X . |
%v | Nomor minggu (01-53), ketika hari pertama dalam seminggu adalah hari Senin. Digunakan dengan %x . |
Jadi kita bisa menambahkan penentu format tersebut ke contoh di atas, dan mendapatkan yang berikut:
SELECT
DATE_FORMAT('2023-01-01', '%X, %V') AS "%X, %V",
DATE_FORMAT('2023-01-01', '%x, %v') AS "%x, %v";
Hasil:
+----------+----------+ | %X, %V | %x, %v | +----------+----------+ | 2023, 01 | 2022, 52 | +----------+----------+
Perhatikan bahwa %x
tidak akan selalu mengembalikan tahun yang berbeda – itu tergantung pada tanggal aktual yang digunakan. Terkadang %X
yang mengembalikan tahun yang berbeda dari tahun lainnya.
Ayo majukan tanggal setahun:
SELECT
DATE_FORMAT('2024-01-01', '%X') AS "%X",
DATE_FORMAT('2024-01-01', '%x') AS "%x",
DATE_FORMAT('2024-01-01', '%Y') AS "%Y",
DATE_FORMAT('2024-01-01', '%y') AS "%y";
Hasil:
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2023 | 2024 | 2024 | 24 | +------+------+------+------+
Kali ini %X
itu yang aneh. Seperti yang dijelaskan pada tabel di atas, itu tergantung pada apakah hari pertama dalam seminggu adalah hari Minggu atau Senin.
Tentu saja, jika kita melangkah lebih jauh ke tahun ini, semua penentu format menampilkan tahun yang sama:
SELECT
DATE_FORMAT('2024-12-12', '%X') AS "%X",
DATE_FORMAT('2024-12-12', '%x') AS "%x",
DATE_FORMAT('2024-12-12', '%Y') AS "%Y",
DATE_FORMAT('2024-12-12', '%y') AS "%y";
Hasil:
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2024 | 2024 | 2024 | 24 | +------+------+------+------+
Lihat MariaDB Format Strings untuk daftar lengkap format string/specifier.
YEARWEEK()
Fungsi
YEARWEEK()
fungsi mengembalikan tahun dan minggu untuk tanggal tertentu.
Contoh:
SELECT YEARWEEK('2023-01-01');
Hasil:
+------------------------+ | YEARWEEK('2023-01-01') | +------------------------+ | 202301 | +------------------------+
Tahun dalam hasil mungkin berbeda dari tahun dalam argumen tanggal untuk minggu pertama dan terakhir tahun itu.
Inilah yang terjadi jika kita maju satu tahun:
SELECT YEARWEEK('2024-01-01');
Hasil:
+------------------------+ | YEARWEEK('2024-01-01') | +------------------------+ | 202353 | +------------------------+
YEARWEEK()
function menerima argumen kedua opsional untuk menentukan mode. Hasil aktual yang Anda dapatkan dari fungsi ini akan tergantung pada mode yang digunakan. Jika argumen mode dihilangkan, nilai default_week_format
variabel sistem digunakan.
Lihat Bagaimana YEARWEEK()
Bekerja di MariaDB untuk mengetahui lebih lanjut tentang mode dan contoh masing-masing.