Как подставить даты в Oracle db? [дубликат]
Jan 23 2021
Я хочу выделить 2 даты (текущая дата и hairressing_date), чтобы получить результат из таблицы для представления данных за последние 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 Jan 23 2021 at 03:05
Пожалуйста, используйте 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;