Masalah:
Anda ingin menambahkan satu bulan ke tanggal tertentu dalam database SQLite.
Contoh:
Basis data kami memiliki tabel bernama production
dengan data pada kolom id
, product
, dan start_date
.
id | produk | tanggal_mulai |
---|---|---|
1 | meja | 17-08-2019 |
2 | kursi berlengan | 17-07-2019 |
3 | sofa | 31-10-2019 |
Produk memiliki tanggal mulai produksi baru yang satu bulan lebih lambat dari yang tercantum di atas. Mari dapatkan nama produk dan tanggal mulainya yang baru.
Inilah kueri yang akan Anda tulis:
Solusi:
SELECT product, DATE(start_date,'+1 months') AS new_start_date FROM production;
Berikut hasil querynya:
id | produk | tanggal_mulai_baru |
---|---|---|
1 | meja | 17-09-2019 |
2 | kursi berlengan | 17-08-2019 |
3 | sofa | 01-12-2019 |
Diskusi:
Gunakan SQLite DATE()
berfungsi untuk menambahkan satu bulan ke tanggal tertentu (atau tanggal dan waktu). Argumen yang diperlukan mencakup tanggal/tanggal waktu untuk mengubah dan satu atau lebih pengubah dengan nilai yang menunjukkan berapa banyak unit yang ditambahkan atau dikurangi.
Argumen pertama bisa berupa ekspresi yang mengembalikan nilai tanggal/waktu atau kolom tanggal/waktu. Dalam contoh kita, ini adalah kolom start_date
.
Pengubah menunjukkan apa (dan berapa banyak) satuan waktu untuk ditambahkan/dikurangi. Dalam contoh kami, kami menggunakan pengubah ‘+1 bulan '. Pengubah dimulai dengan plus atau minus, yang menunjukkan penambahan atau pengurangan. Kemudian ada nilai (mis. 1) dan satuan (mis. bulan , tahun , hari , dll.) Jika Anda menulis ‘-2 hari ', Anda mengurangi 2 hari dari tanggal tertentu.
Penting: Beberapa pengubah memerlukan sintaks yang sedikit berbeda dari yang ditunjukkan di atas. Misalnya, 'hari kerja ' pengubah muncul sebelum nilai (yaitu DATE(start_date,'weekday 3')
). Pengubah lain tidak mengambil nilai, seperti 'awal bulan ’, yang menampilkan hari pertama setiap bulan untuk tanggal tertentu (yaitu DATE(start_date,' start of month')
). Anda dapat menemukan informasi yang tepat tentang pengubah tanggal dan waktu dalam dokumentasi SQLite.
Kami menamai kolom baru yang berisi tanggal mulai yang diperbarui new_start_date
. Tanggal mulai produksi baru untuk meja adalah 2019-09-17
, satu bulan lebih lambat dari tanggal asli 2019-08-17
. Perhatikan bahwa untuk 2019-10-31
, tanggal barunya adalah 2019-12-01
; ini karena November memiliki 30 hari, bukan 31.