日期-上一个年和当前= sysdate

时间:2018-11-05 10:54:52

标签: sql oracle date

所以,我想添加下一个“间隔”作为条件:

SELECT sum(x.count) FROM x WHERE

当前:

TO_CHAR(x.date,'YYYYW') = TO_CHAR(SYSDATE,'YYYYW')

输出:

20181 = 20181

我想要这样的东西:

(TO_CHAR(x.date,'YYYYW') and TO_CHAR(x.date-365,'YYYYW'))  = (TO_CHAR(SYSDATE,'YYYYW') and TO_CHAR(SYSDATE-365,'YYYYW'))

预期输出:

20171 and 20181 = 20181
20172 and 20182 = 20182
and so on...

to_char(DATE,'W')不好,因为我的日期早于2017年。.并且我不想选择它们。

2 个答案:

答案 0 :(得分:0)

我不太确定您真正想要做什么,但是您不能只使用以下查询:

SELECT sum(x.count) FROM x WHERE x.date >= trunc(sysdate, 'W')

trunc(sysdate, 'W')为您提供星期几作为日期,然后您对所有较新的数据行求和...

答案 1 :(得分:0)

您是否正在寻找类似的东西?

WHERE (TO_CHAR(x.date, 'YYYYW') = TO_CHAR(SYSDATE,'YYYYW')) OR
      (TO_CHAR(x.date, 'YYYYW') = TO_CHAR(SYSDATE - 365, 'YYYYW'))