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

Bagaimana WEEKOFYEAR() Bekerja di MariaDB

Di MariaDB, WEEKOFYEAR() adalah fungsi tanggal dan waktu bawaan yang mengembalikan minggu kalender dari tanggal tertentu sebagai angka dalam rentang dari 1 ke 53 .

Ini sama dengan menggunakan WEEK() berfungsi dalam mode 3, dan oleh karena itu hasilnya sesuai dengan ISO 8601:1988.

Ia menerima satu argumen; tanggal yang ingin Anda ekstrak minggunya.

Sintaks

Sintaksnya seperti ini:

WEEKOFYEAR(date) 

Dimana date adalah ekspresi tanggal untuk mendapatkan minggu kalender.

Contoh

Ini contohnya:

SELECT WEEKOFYEAR('2030-01-01'); 

Hasil:

+--------------------------+| WEEKOFYEAR('2030-01-01') |+--------------------------+| 1 |+--------------------------+

Ini setara dengan melakukan hal berikut:

SELECT WEEK('2030-01-01', 3); 

Hasil:

+------------------------+| MINGGU('2030-01-01', 3) |+-----------------------+| 1 |+------------------------+

Nilai Tanggal-waktu

WEEKOFYEAR() fungsi juga bekerja dengan nilai datetime:

SELECT WEEKOFYEAR('2030-08-01 10:30:45'); 

Hasil:

+-----------------------------------+| WEEKOFYEAR('2030-08-01 10:30:45') |+--------------------------------- --+| 31 |+-----------------------------------+

Tanggal Numerik

Dimungkinkan juga untuk melewatkan tanggal sebagai angka, asalkan masuk akal sebagai tanggal.

Contoh

SELECT WEEKOFYEAR(20301125); 

Hasil:

+----------------------+| WEEKOFYEAR (20301125) |+----------------------+| 48 |+----------------------+

Atau bahkan yang berikut (yang menggunakan tahun dua digit):

SELECT WEEKOFYEAR(301125); 

Hasil:

+--------------------+| WEEKOFYEAR(301125) |+------+| 48 |+--------------------+

Tapi itu harus masuk akal sebagai kencan. Inilah yang terjadi jika saya menambah bagian hari menjadi hari yang tidak valid:

SELECT WEEKOFYEAR(20301135); 

Hasil:

+----------------------+| WEEKOFYEAR (20301135) |+----------------------+| NULL |+------------+1 baris di set, 1 peringatan (0,000 detik)

Itu mengembalikan null dengan peringatan.

Mari kita lihat peringatannya:

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 
    WEEKOFYEAR('2030/06/25'),
    WEEKOFYEAR('2030,06,25'),
    WEEKOFYEAR('2030:06:25'),
    WEEKOFYEAR('2030;06!25'); 

Hasil (menggunakan keluaran vertikal):

WEEKOFYEAR('2030/06/25'):26WEEKOFYEAR('2030,06,25'):26WEEKOFYEAR('2030:06:25'):26WEEKOFYEAR('2030;06!25'):26 

Tanggal Saat Ini

Kita dapat melewati NOW() sebagai argumen datetime untuk menggunakan tanggal saat ini:

SELECT 
    NOW(),
    WEEKOFYEAR(NOW()); 

Hasil:

+---------------------+-------------------+| SEKARANG() | WEEKOFYEAR(SEKARANG()) |+---------------------+-------------------+ | 2021-05-17 09:42:13 | 20 |+---------------------+-------------------+

Argumen Tidak Valid

Saat memberikan argumen yang tidak valid, WEEKOFYEAR() mengembalikan null :

SELECT WEEKOFYEAR('2030-65-78'); 

Hasil:

+--------------------------+| WEEKOFYEAR('2030-65-78') |+--------------------------+| NULL |+--------------------------+1 baris di set, 1 peringatan (0,000 detik)

Ayo tunjukkan peringatannya:

SHOW WARNINGS; 

Hasil:

+---------+------+----------------------------- -----------+| tingkat | Kode | Pesan |+---------+-------+--------------------------------------- ----------+| Peringatan | 1292 | Nilai datetime salah:'2030-65-78' |+---------+------+-------------------- --------------------+

Argumen Tidak Ada

Memanggil WEEKOFYEAR() dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:

SELECT WEEKOFYEAR(); 

Hasil:

ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'WEEKOFYEAR'

Dan contoh lain:

SELECT WEEKOFYEAR('2030-12-10', 1); 

Hasil:

ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'WEEKOFYEAR'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menjalankan Vitess dan MySQL dengan ClusterControl

  2. Bermigrasi dari Maxscale ke ProxySQL Load Balancer

  3. Pemulihan Cluster Galera 101 - Menyelam Jauh Ke Dalam Partisi Jaringan

  4. ClusterControl - Manajemen Cadangan Tingkat Lanjut - mariabackup Bagian I

  5. MariaDB JSON_CONTAINS_PATH() Dijelaskan