我想查询两个日期之间的数据

时间:2018-07-31 18:04:37

标签: oracle

我想查询两个日期之间的数据。第一个日期始终是一年的开始(例如2018年1月1日),第二个日期将是系统日期。问题是,当年份更改时,第一个日期将动态更改,例如2018年1月1日将动态更改为2019年1月1日。

我进行了查询,但我不知道如何动态安排首次约会。

SELECT * 
FROM id_certs 
where PERIOD BETWEEN to_date('01-Jan-2018', 'dd-mon-yyyy') and TO_DATE(SYSDATE);

1 个答案:

答案 0 :(得分:0)

DECLARE
year_end_date DATE;
year_start_date DATE;
new_start_date DATE;
text_field DATE;
BEGIN
SELECT add_months(trunc(sysdate,'YYYY')-1,12) into year_end_date FROM dual;
SELECT TRUNC(SysDate,'YEAR') into year_start_date  FROM Dual;
SELECT add_months(trunc(sysdate,'YYYY')-1,12) + 1 into new_start_date FROM dual;
IF year_end_date = SYSDATE THEN
  text_field := new_start_date;
ELSE
  text_field := year_start_date;
END IF;
  select * from table_name where column_name between text_field and sysdate;
END;


I made this somebody help me to correct this i am not able to fetch data, i am new in pl sql please help.