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
fungsi memungkinkan Anda untuk mengekstrak unit tertentu dari tanggal. Oleh karena itu, Anda dapat menggunakannya untuk mengekstrak minggu (serta unit lain) dari tanggal.EXTRACT
()
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.