Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

WEEK() Contoh – MySQL

Di MySQL, Anda dapat menggunakan WEEK() berfungsi untuk mendapatkan nomor minggu untuk tanggal tertentu. Yang saya maksud dengan “nomor minggu” adalah minggu dalam setahun.

Untuk menggunakan fungsi tersebut, cukup berikan tanggal sebagai argumen dan nomor minggu akan dikembalikan.

Anda juga memiliki opsi untuk menentukan apakah akan memulai minggu pada hari Minggu atau Senin, dan apakah minggu tersebut harus dalam kisaran 0 hingga 53 atau 1 hingga 53.

Sintaks

Sintaksnya seperti ini:

WEEK(date[,mode])

Dimana:

  • date adalah tanggal yang Anda inginkan untuk mengembalikan nomor minggu.
  • mode adalah angka yang menentukan apakah minggu harus dimulai pada hari Minggu atau Senin dan apakah minggu harus dalam kisaran 0 hingga 53 atau 1 hingga 53. Lihat tabel di bawah untuk kemungkinan nilai mode.

Contoh 1 – Penggunaan Dasar

Berikut ini contoh untuk didemonstrasikan.

SELECT WEEK('2021-01-25') As 'Week Number';

Hasil:

+-------------+
| Week Number |
+-------------+
|           4 |
+-------------+

Berikut ini contoh dengan tanggal mendekati akhir tahun.

SELECT WEEK('2021-12-25') As 'Week Number';

Hasil:

+-------------+
| Week Number |
+-------------+
|          51 |
+-------------+

Contoh 2 – Tentukan Mode

Jika Anda tidak menentukan argumen kedua, WEEK() fungsi menggunakan mode seperti yang ditentukan oleh default_week_format variabel sistem. Nilai default dari variabel ini adalah 0 .

Namun, Anda juga memiliki opsi untuk memberikan argumen kedua untuk menentukan mode mana yang akan digunakan. Contoh:

SELECT WEEK('2019-10-17', 7) AS 'Mode 7';

Hasil:

+--------+
| Mode 7 |
+--------+
|     41 |
+--------+

Nilai mode yang mungkin adalah sebagai berikut.

Mode Hari pertama dalam seminggu Rentang Minggu 1 adalah minggu pertama …
0 Minggu 0-03 dengan hari Minggu di tahun ini
1 Senin 0-03 dengan 4 hari atau lebih tahun ini
2 Minggu 1-53 dengan hari Minggu di tahun ini
3 Senin 1-53 dengan 4 hari atau lebih tahun ini
4 Minggu 0-03 dengan 4 hari atau lebih tahun ini
5 Senin 0-03 dengan hari Senin di tahun ini
6 Minggu 1-53 dengan 4 hari atau lebih tahun ini
7 Senin 1-53 dengan hari Senin di tahun ini

Untuk nilai mode di mana minggu 1 adalah minggu pertama “dengan 4 hari atau lebih tahun ini”, minggu diberi nomor menurut ISO 8601:1988:

  • Jika minggu yang berisi 1 Januari memiliki 4 hari atau lebih di tahun baru, itu adalah minggu 1.
  • Jika tidak, ini adalah minggu terakhir dari tahun sebelumnya, dan minggu berikutnya adalah minggu 1.

Contoh 3 – Perbandingan Mode

Berikut perbandingan singkat tentang bagaimana Anda bisa mendapatkan hasil yang berbeda tergantung pada mode yang digunakan.

Tiga contoh berikut menggunakan kode yang sama, tetapi dengan tiga tanggal yang berbeda. Tanggal-tanggal ini berurutan – terjadi pada tanggal 5, 6, dan 7 Januari. Seperti yang Anda lihat, hasilnya bisa sangat berbeda tergantung pada tanggal pasti dan mode yang digunakan.

Tanggal 1

SET @date = '2019-01-05';
SELECT 
  WEEK(@date, 0) AS 'Mode 0',
  WEEK(@date, 1) AS 'Mode 1',
  WEEK(@date, 2) AS 'Mode 2',
  WEEK(@date, 3) AS 'Mode 3',
  WEEK(@date, 4) AS 'Mode 4',
  WEEK(@date, 5) AS 'Mode 5',
  WEEK(@date, 6) AS 'Mode 6',
  WEEK(@date, 7) AS 'Mode 7';

Hasil:

+--------+--------+--------+--------+--------+--------+--------+--------+
| Mode 0 | Mode 1 | Mode 2 | Mode 3 | Mode 4 | Mode 5 | Mode 6 | Mode 7 |
+--------+--------+--------+--------+--------+--------+--------+--------+
|      0 |      1 |     52 |      1 |      1 |      0 |      1 |     53 |
+--------+--------+--------+--------+--------+--------+--------+--------+

Tanggal 2

SET @date = '2019-01-06';
SELECT 
  WEEK(@date, 0) AS 'Mode 0',
  WEEK(@date, 1) AS 'Mode 1',
  WEEK(@date, 2) AS 'Mode 2',
  WEEK(@date, 3) AS 'Mode 3',
  WEEK(@date, 4) AS 'Mode 4',
  WEEK(@date, 5) AS 'Mode 5',
  WEEK(@date, 6) AS 'Mode 6',
  WEEK(@date, 7) AS 'Mode 7';

Hasil:

+--------+--------+--------+--------+--------+--------+--------+--------+
| Mode 0 | Mode 1 | Mode 2 | Mode 3 | Mode 4 | Mode 5 | Mode 6 | Mode 7 |
+--------+--------+--------+--------+--------+--------+--------+--------+
|      1 |      1 |      1 |      1 |      2 |      0 |      2 |     53 |
+--------+--------+--------+--------+--------+--------+--------+--------+

Tanggal 3

SET @date = '2019-01-07';
SELECT 
  WEEK(@date, 0) AS 'Mode 0',
  WEEK(@date, 1) AS 'Mode 1',
  WEEK(@date, 2) AS 'Mode 2',
  WEEK(@date, 3) AS 'Mode 3',
  WEEK(@date, 4) AS 'Mode 4',
  WEEK(@date, 5) AS 'Mode 5',
  WEEK(@date, 6) AS 'Mode 6',
  WEEK(@date, 7) AS 'Mode 7';

Hasil:

+--------+--------+--------+--------+--------+--------+--------+--------+
| Mode 0 | Mode 1 | Mode 2 | Mode 3 | Mode 4 | Mode 5 | Mode 6 | Mode 7 |
+--------+--------+--------+--------+--------+--------+--------+--------+
|      1 |      2 |      1 |      2 |      2 |      1 |      2 |      1 |
+--------+--------+--------+--------+--------+--------+--------+--------+

  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 cara menyinkronkan ulang DB Mysql jika Master dan slave memiliki basis data yang berbeda jika replikasi Mysql?

  2. PDO dapatkan ID terakhir yang dimasukkan

  3. Memahami transaksi pdo mysql

  4. mysqli::mysqli():(HY000/2002):Tidak dapat terhubung ke server MySQL lokal melalui soket 'MySQL' (2)

  5. Bagaimana saya bisa menghilangkan komentar ini di dump MySQL?