SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Kembalikan Senin Pertama Setiap Bulan di SQLite

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kapan saya harus menutup kursor dan db?

  2. Salin sqlite di aset studio Android tidak berfungsi

  3. Mengkloning Database SQLite

  4. Cara melampirkan file .db dengan .apk android lain

  5. Pembaruan SQLite