Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

menambahkan bulan ke tanggal SQL

Penggunaan fungsi add_months() Anda salah. Ini bukan dua kata, itu hanya satu (dengan garis bawah)

add_months(datesold, 1)

perhatikan garis bawah _ antara ADD dan MONTHS . Itu panggilan fungsi bukan operator.

Atau Anda dapat menggunakan:

datesold + INTERVAL '1' month

Meskipun perlu dicatat bahwa aritmatika dengan interval terbatas (jika tidak rusak) karena hanya "menambah" nilai bulan dari nilai tanggal. Itu dapat menyebabkan tanggal yang tidak valid (misalnya dari Januari hingga Februari). Meskipun ini adalah perilaku yang didokumentasikan (lihat tautan di bawah) saya menganggap ini sebagai bug (standar SQL mengharuskan operasi tersebut untuk "Aritmatika mematuhi aturan alami yang terkait dengan tanggal dan waktu dan menghasilkan tanggal waktu atau hasil interval yang valid menurut kalender Gregorian ")

Lihat manual untuk detailnya:
http ://docs.Oracle.com/cd/E11882_01/server.112/e26088/functions011.htm#i76717
http://docs.Oracle .com/cd/E11882_01/server.112/e26088/sql_elements001.htm#i48042

Hal lain:

Lalu mengapa Anda menggunakan INSERT penyataan? Untuk mengubah data baris yang ada Anda harus menggunakan UPDATE . Jadi sepertinya yang Anda cari adalah seperti ini:

update auctions
   set datesold = add_months(datesold, 1)
where item = 'Radio';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00933:Perintah SQL tidak diakhiri dengan benar saat menggunakan pivot

  2. Saya mencoba untuk mencapai hasil di bawah ini

  3. Bagaimana membuat nol sama dengan nol di Oracle

  4. Jenis objek apa yang dikembalikan oleh Spring Hibernate Template untuk kueri penghitungan di Oracle?

  5. Kesalahan SQL ORA 01427