Como subtrair datas no oracle db? [duplicado]
Eu quero subtrair 2 datas (data atual e hairdressing_date) para obter o resultado da tabela para representar os dados durante os últimos 2 anos. Eu tenho a seguinte instrução SELECT:
SELECT count(c_id)
INTO counter
FROM RESERVATIONS r
WHERE r.customer_id = 1
AND (Sysdate - r.hairdressing_date) / 365 < 2;
É personalizado, mas não tenho certeza sobre a parte '/ 365' do código.
Como obter os dados necessários corretamente? Você poderia escrever a implementação correta desta linha?
Respostas
2 ThomasKirchhoff
Use a MONTHS_BETWEEN()
função como esta:
SELECT MONTHS_BETWEEN(TRUNC(SYSDATE), TO_DATE('22.01.2019', 'DD.MM.YYYY'))/12
FROM DUAL;
e reverta para este considerando o seu caso:
SELECT count(c_id)
INTO counter
FROM RESERVATIONS r
WHERE r.customer_id = 1
AND MONTHS_BETWEEN(TRUNC(SYSDATE), hairdressing_date)/12 < 2;
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?