Oracle db'de tarihler nasıl alt yapıya alınır? [çiftleme]

Jan 23 2021

Son 2 yıldaki verileri temsil etmek için tablodan sonuç almak için 2 tarih (geçerli tarih ve kuaför_tarihi) alt yapı oluşturmak istiyorum. Aşağıdaki SELECT deyimim var:

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

Bu özeldir, ancak kodun '/ 365' kısmından emin değilim.

Gerekli veriler nasıl doğru bir şekilde alınır? Bu satırın doğru uygulamasını yazabilir misiniz?

Yanıtlar

2 ThomasKirchhoff Jan 23 2021 at 03:05

Lütfen şu şekilde bir MONTHS_BETWEEN()işlev kullanın :

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

ve durumunuzu göz önünde bulundurarak buna geri dönün:

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