Bagaimana cara mensubstruksikan tanggal di oracle db? [duplikat]

Jan 23 2021

Saya ingin substruktur 2 tanggal (tanggal saat ini dan tanggal_penata rambut) untuk mendapatkan hasil dari tabel untuk mewakili data selama 2 tahun terakhir. Saya memiliki pernyataan SELECT berikut:

SELECT count(c_id) 
  INTO counter 
  FROM RESERVATIONS r
 WHERE r.customer_id = 1 
   AND (Sysdate - r.hairdressing_date) / 365 < 2;

Ini kustom, tetapi saya tidak yakin tentang bagian '/ 365' dari kode.

Bagaimana cara mendapatkan data yang dibutuhkan dengan benar? Bisakah Anda menulis implementasi yang benar dari baris ini?

Jawaban

2 ThomasKirchhoff Jan 23 2021 at 03:05

Silakan gunakan MONTHS_BETWEEN()fungsi seperti ini:

SELECT MONTHS_BETWEEN(TRUNC(SYSDATE), TO_DATE('22.01.2019', 'DD.MM.YYYY'))/12 
  FROM DUAL;

dan kembali ke yang ini dengan mempertimbangkan kasus Anda:

SELECT count(c_id) 
  INTO counter 
  FROM RESERVATIONS r     
 WHERE r.customer_id = 1 
   AND MONTHS_BETWEEN(TRUNC(SYSDATE), hairdressing_date)/12 < 2;