วิธีการสร้างวันที่ใน Oracle DB? [ซ้ำ]
ฉันต้องการแบ่งวันที่ 2 วัน (วันที่ปัจจุบันและวันที่ทำผม) เพื่อให้ได้ผลลัพธ์จากตารางเพื่อแสดงข้อมูลในช่วง 2 ปีที่ผ่านมา ฉันมีคำสั่ง SELECT ต่อไปนี้:
SELECT count(c_id)
INTO counter
FROM RESERVATIONS r
WHERE r.customer_id = 1
AND (Sysdate - r.hairdressing_date) / 365 < 2;
เป็นแบบกำหนดเอง แต่ฉันไม่แน่ใจเกี่ยวกับส่วน '/ 365' ของโค้ด
วิธีการรับข้อมูลที่ต้องการอย่างถูกต้อง? คุณช่วยเขียนการใช้งานบรรทัดนี้ให้ถูกต้องได้ไหม
คำตอบ
2 ThomasKirchhoff
โปรดใช้MONTHS_BETWEEN()
ฟังก์ชันดังนี้:
SELECT MONTHS_BETWEEN(TRUNC(SYSDATE), TO_DATE('22.01.2019', 'DD.MM.YYYY'))/12
FROM DUAL;
และเปลี่ยนกลับเป็นสิ่งนี้ตามกรณีของคุณ:
SELECT count(c_id)
INTO counter
FROM RESERVATIONS r
WHERE r.customer_id = 1
AND MONTHS_BETWEEN(TRUNC(SYSDATE), hairdressing_date)/12 < 2;