MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

4 Fungsi untuk Mengembalikan Tahun dari Tanggal di MariaDB

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

EXTRACT () fungsi memungkinkan Anda untuk mengekstrak unit tertentu dari tanggal. Oleh karena itu, Anda dapat menggunakannya untuk mengekstrak tahun (serta unit lainnya) dari tanggal.

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SUM() Fungsi di MariaDB

  2. 4 Cara Memilih Baris Duplikat di MariaDB

  3. Failover Tingkat Lanjut Menggunakan Kait Skrip Post/pra

  4. MariaDB JSON_OBJECTAGG() Dijelaskan

  5. 8 Cara Menambahkan Hari ke Tanggal di MariaDB