Kita dapat menggunakan DATE()
dari SQLite berfungsi untuk mengembalikan Senin pertama setiap bulan untuk tahun tertentu, berdasarkan tanggal yang kami berikan.
Tapi itu tidak terbatas pada hari Senin. Kami juga bisa mendapatkan hari Selasa, Rabu, Kamis, Jumat, dll pertama setiap bulan.
Contoh
Sebagai alternatif, kita dapat menggunakan kode seperti berikut untuk mengembalikan Senin pertama setiap bulan sepanjang tahun:
SELECT
DATE('2025-10-20', 'start of year', 'weekday 1') AS "Jan",
DATE('2025-10-20', 'start of year', '+1 month', 'weekday 1') AS "Feb",
DATE('2025-10-20', 'start of year', '+2 months', 'weekday 1') AS "Mar",
DATE('2025-10-20', 'start of year', '+3 months', 'weekday 1') AS "Apr",
DATE('2025-10-20', 'start of year', '+4 months', 'weekday 1') AS "May",
DATE('2025-10-20', 'start of year', '+5 months', 'weekday 1') AS "Jun",
DATE('2025-10-20', 'start of year', '+6 months', 'weekday 1') AS "Jul",
DATE('2025-10-20', 'start of year', '+7 months', 'weekday 1') AS "Aug",
DATE('2025-10-20', 'start of year', '+8 months', 'weekday 1') AS "Sep",
DATE('2025-10-20', 'start of year', '+9 months', 'weekday 1') AS "Oct",
DATE('2025-10-20', 'start of year', '+10 months', 'weekday 1') AS "Nov",
DATE('2025-10-20', 'start of year', '+11 months', 'weekday 1') AS "Dec";
Hasil:
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- 2025-01-06 2025-02-03 2025-03-03 2025-04-07 2025-05-05 2025-06-02 2025-07-07 2025-08-04 2025-09-01 2025-10-06 2025-11-03 2025-12-01
Di sini, kita memanggil DATE()
berfungsi dua belas kali. Kami menggunakan tanggal yang sama setiap kali, dan sebagian besar argumennya sama. Satu-satunya hal yang berubah adalah berapa banyak yang kita tambahkan ke awal tahun.
Kami menggunakan start of year
untuk mengembalikan tanggal kembali ke hari pertama tahun itu. Kami kemudian menggunakan pengubah tambahan untuk mengubah tanggal tersebut.
Ketika kami tidak menambahkan bulan apa pun ke tanggal, kami mengembalikan Senin pertama bulan Januari. Menambahkan +1 month
mengembalikan Senin pertama bulan Februari, dan seterusnya.
weekday 1
pengubah memindahkan tanggal ke depan pada hari Senin berikutnya. Minggu adalah 0, Senin adalah 1, Selasa adalah 2, dan seterusnya, jadi jika kita ingin Selasa misalnya, kita akan menggunakan weekday 2
sebagai gantinya.
Menggunakan Tanggal Saat Ini
Contoh berikut menggunakan tanggal saat ini:
SELECT
DATE('now') AS "Now",
DATE('now', 'start of year', 'weekday 1') AS "Jan",
DATE('now', 'start of year', '+1 month', 'weekday 1') AS "Feb",
DATE('now', 'start of year', '+2 months', 'weekday 1') AS "Mar",
DATE('now', 'start of year', '+3 months', 'weekday 1') AS "Apr",
DATE('now', 'start of year', '+4 months', 'weekday 1') AS "May",
DATE('now', 'start of year', '+5 months', 'weekday 1') AS "Jun",
DATE('now', 'start of year', '+6 months', 'weekday 1') AS "Jul",
DATE('now', 'start of year', '+7 months', 'weekday 1') AS "Aug",
DATE('now', 'start of year', '+8 months', 'weekday 1') AS "Sep",
DATE('now', 'start of year', '+9 months', 'weekday 1') AS "Oct",
DATE('now', 'start of year', '+10 months', 'weekday 1') AS "Nov",
DATE('now', 'start of year', '+11 months', 'weekday 1') AS "Dec";
Hasil:
Now Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- 2022-03-10 2022-01-03 2022-02-07 2022-03-07 2022-04-04 2022-05-02 2022-06-06 2022-07-04 2022-08-01 2022-09-05 2022-10-03 2022-11-07 2022-12-05