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

Tambahkan Bulan ke Tanggal di SQLite

Dalam SQLite, kita dapat menggunakan DATE() berfungsi untuk menambahkan satu bulan atau lebih ke sebuah tanggal.

Saat kita berurusan dengan nilai datetime, kita dapat menggunakan DATETIME() fungsi.

Contoh

Berikut ini contoh yang menggunakan DATE() fungsi:

SELECT DATE('2050-08-21', '+1 month');

Hasil:

2050-09-21

Jika kita ingin mengurangi jumlahnya, kita bisa mengganti + dengan - .

Juga, hilangkan + sebagian menghasilkan jumlah yang ditambahkan, seolah-olah kita menggunakan + :

SELECT DATE('2050-08-21', '1 month');

Hasil:

2050-09-21

Kita dapat menentukan bulan dalam bentuk jamak atau non jamak. Dengan kata lain, month setara dengan month :

SELECT 
    DATE('2050-08-21', '+3 month') AS month,
    DATE('2050-08-21', '+3 months') AS months;

Hasil:

month       months    
----------  ----------
2050-11-21  2050-11-21

Ditentukan dalam Hari

Sebagai alternatif, kami dapat menambahkan satu bulan atau lebih ke tanggal berdasarkan jumlah hari:

SELECT DATE('2050-08-21', '+31 days');

Hasil:

2050-09-21

Meskipun, ingatlah bahwa ini akan mengharuskan Anda tahu persis berapa hari yang sesuai untuk bulan-bulan yang terlibat. Beberapa bulan memiliki 30 hari, beberapa memiliki 31, dan Februari memiliki 28 atau 29, tergantung apakah itu tahun kabisat atau tidak.

Dengan month /month pengubah, SQLite menormalkan tanggal, berdasarkan jumlah hari dalam bulan yang relevan.

Berikut perbandingan bulan vs hari saat menambahkan tanggal di bulan Maret:

SELECT 
    DATE('2050-03-31', '+1 month') AS "1 month",
    DATE('2050-03-31', '+30 days') AS "30 days",
    DATE('2050-03-31', '+31 days') AS "31 days";

Hasil:

1 month     30 days     31 days   
----------  ----------  ----------
2050-05-01  2050-04-30  2050-05-01

Dan inilah perbandingan yang sama saat menambahkan tanggal di bulan September:

SELECT 
    DATE('2050-09-30', '+1 month') AS "1 month",
    DATE('2050-09-30', '+30 days') AS "30 days",
    DATE('2050-09-30', '+31 days') AS "31 days";

Hasil:

1 month     30 days     31 days   
----------  ----------  ----------
2050-10-30  2050-10-30  2050-10-31

DATETIME() Fungsi

Berikut adalah contoh yang menunjukkan cara menggunakan DATETIME() fungsi untuk menambahkan satu bulan ke nilai datetime:

SELECT DATETIME('2050-08-21', '+1 month');

Hasil:

2050-09-21 00:00:00

Dalam hal ini, saya melewatkan nilai tanggal, tetapi fungsi mengembalikan nilai waktu-tanggal.

Berikut contoh lain, kali ini dengan nilai datetime:

SELECT DATETIME('2050-08-21 18:30:45', '+1 month');

Hasil:

2050-09-21 18:30:45

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui semua baris dalam kolom ke nilai baru

  2. Cara menarik data dari database dan melihatnya sebagai ListView

  3. Membaca database dari folder aset

  4. Baris pembaruan Android SQLite tidak berfungsi

  5. Posting cepat tentang SQLite UPSERT dan klausa RETURNING baru.