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

5 Fungsi untuk Mengekstrak Nomor Minggu dari Tanggal di MariaDB

Di bawah ini adalah 5 fungsi yang memungkinkan Anda mengembalikan nomor minggu dari tanggal di MariaDB. Empat kembali hanya dalam seminggu, dan satu kembali dalam kombinasi minggu dan tahun.

WEEK() Fungsi

WEEK() fungsi mengembalikan minggu untuk tanggal tertentu.

Contoh:

SELECT WEEK('2023-07-25');

Hasil:

+--------------------+
| WEEK('2023-07-25') |
+--------------------+
|                 30 |
+--------------------+

WEEK() 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 WEEK() Bekerja di MariaDB untuk mengetahui lebih lanjut tentang mode dan contoh masing-masing.

EXTRACT() Fungsi

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

Contoh:

SELECT EXTRACT(WEEK FROM '2023-07-25');

Hasil:

+---------------------------------+
| EXTRACT(WEEK FROM '2023-07-25') |
+---------------------------------+
|                              30 |
+---------------------------------+

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 minggu (serta unit lainnya) dari tanggal. Ada berbagai opsi untuk mengembalikan nomor minggu, tergantung pada hari apa minggu itu dimulai, dll.

Berikut adalah contoh yang mengembalikan minggu dalam berbagai bentuk:

SELECT 
    DATE_FORMAT('2023-01-01', '%U') AS "%U",
    DATE_FORMAT('2023-01-01', '%u') AS "%u",
    DATE_FORMAT('2023-01-01', '%V') AS "%V",
    DATE_FORMAT('2023-01-01', '%v') AS "%v";

Hasil:

+------+------+------+------+
| %U   | %u   | %V   | %v   |
+------+------+------+------+
| 01   | 00   | 01   | 52   |
+------+------+------+------+

Berikut adalah deskripsi dari masing-masing penentu format tersebut:

Penentu Format Deskripsi
%U Nomor minggu (00-53), ketika hari pertama dalam seminggu adalah hari Minggu.
%u Nomor minggu (00-53), ketika hari pertama dalam seminggu adalah Senin.
%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 .

Dan berikut deskripsi %X dan %x sebagaimana dimaksud pada tabel di atas:

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 .

Kami dapat menggabungkan penentu format untuk menampilkan tahun dan minggu secara bersamaan jika diperlukan:

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 nomor minggu tidak akan selalu mencerminkan contoh di atas – itu tergantung pada tanggal aktual yang digunakan.

Ayo majukan tanggal setahun:

SELECT 
    DATE_FORMAT('2024-01-01', '%U') AS "%U",
    DATE_FORMAT('2024-01-01', '%u') AS "%u",
    DATE_FORMAT('2024-01-01', '%V') AS "%V",
    DATE_FORMAT('2024-01-01', '%v') AS "%v";

Hasil:

+------+------+------+------+
| %U   | %u   | %V   | %v   |
+------+------+------+------+
| 00   | 01   | 53   | 01   |
+------+------+------+------+

Kali ini kami mendapatkan serangkaian hasil yang berbeda.

Inilah yang terjadi saat kita melangkah maju ke tahun ini:

SELECT 
    DATE_FORMAT('2024-12-12', '%U') AS "%U",
    DATE_FORMAT('2024-12-12', '%u') AS "%u",
    DATE_FORMAT('2024-12-12', '%V') AS "%V",
    DATE_FORMAT('2024-12-12', '%v') AS "%v";

Hasil:

+------+------+------+------+
| %U   | %u   | %V   | %v   |
+------+------+------+------+
| 49   | 50   | 49   | 50   |
+------+------+------+------+

Seperti yang Anda lihat, mengembalikan nomor minggu tidak selalu sejelas yang kita harapkan.

Lihat MariaDB Format Strings untuk daftar lengkap format string/specifier yang dapat digunakan dengan DATE_FORMAT() .

YEARWEEK() Fungsi

Dimungkinkan untuk mendapatkan minggu dan tahun dalam sekali jalan. 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 |
+------------------------+

Seperti halnya WEEK() fungsi, 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. Bagaimana FROM_BASE64() Bekerja di MariaDB

  2. Bagaimana UPPER() Bekerja di MariaDB

  3. Bagaimana UNIX_TIMESTAMP() Bekerja di MariaDB

  4. Menyebarkan Database dan Cluster yang Sangat Tersedia dengan ClusterControl

  5. MariaDB CHARACTER_LENGTH() Dijelaskan