所有人都知道Stack。
我有点发脾气,我希望能从蜂巢中获得一些友好的帮助。
我需要编写一个查询,返回注册日期(存储在表格列中)与去年9月第一天之间的天数差异。
例如;假设今天(24-10-2016)正在运行查询,注册日期为14-07-2010,我希望脚本能够返回14-07-2010和01-09之间的天数差异。 2016
但是,如果我在去年8月底之前运行相同的查询,例如2016年12月12日,我希望脚本能够返回14-07-2010和01-09-2015之间的天数差异。
我很好地计算了日期之间的差异,这只是让查询将“去年9月的第一天”返回到绊倒我的计算中的过程!
非常感谢所提供的任何输入。
谢谢你=)
答案 0 :(得分:5)
尝试这种方法:
在当前日期添加四个月
将此日期截断为年度的第一天
再减去四个月
Add_Months(Trunc(Add_Months(SYSDATE, 4), 'year'), -4)
答案 1 :(得分:0)
希望这可能有所帮助。
WITH T AS (SELECT TO_DATE('14-07-2010','DD-MM-YYYY') REG_DATE,
SYSDATE EXEC_DATE
FROM DUAL)
SELECT CASE WHEN TO_CHAR(EXEC_DATE,'MM') >= 9
THEN ADD_MONTHS(TRUNC(EXEC_DATE,'YEAR'),8)
ELSE ADD_MONTHS(TRUNC(ADD_MONTHS(EXEC_DATE,-12),'YEAR'),8)
END
- REG_DATE AS DIFF
FROM T;