从两个日期范围内选择数据

时间:2021-06-16 10:45:16

标签: sql oracle

我想要一个查询,用于在用户提供的两个日期 (p_startdt,p_enddt) 之间选择数据,如果没有输入,则默认情况下将给出过去一年的数据作为输出。我无法为 null 或无输入设置大小写

where invc_dt between p_startdt and p_enddt

1 个答案:

答案 0 :(得分:0)

使用 NVL 处理 NULL 值的情况。如果 p_startdt 为空,以下示例将开始日期为一年前,如果 p_enddt 为空,则 p_enddt 为当前日期:

WHERE invc_dt 
  BETWEEN NVL(p_startdt,ADD_MONTHS(SYSDATE,-12)) AND 
          NVL(p_enddt,SYSDATE)

注意:我假设列 invc_dt 的数据类型是 DATE。