2015-02-23 51 views
1

我想在每一行显示date_added等于'2015-02-18'和每隔7天后'so'2015-02-25 “和‘2015年3月4日’等。如何显示日期等于特定日期每7天的行数

这里是我迄今为止

select * from table 
    where ((to_char(date_added, 'j'))/
    ((select to_char(d,'j') from (select date '2015-02-18' d from dual)))) = 1 

这让我第一所期望的日期,但是我坚持为如何表达它显示接下来的7天作为一步添加功能。

任何帮助表示赞赏。谢谢。要做到这一点

回答

2

一种方法是用mod()

select * 
from table 
where mod(date_added - date '2015-02-18', 7) = 0; 

注:这是假定的日期没有时间组件。如果他们这样做,然后使用trunc()摆脱它。

0

我喜欢Gordon的“mod()”解决方案,但他缺少部分请求的解决方案。

在这种情况下,我有一个“日历”表,其中包括一系列日期:

http://www.perpendulum.com/2012/06/calendar-table-script-for-oracle/

select * 
    from calendar 
    where date_time_start >= to_date('01-Jan-2013') 
    and mod(trunc(date_time_start) - to_date('01-Jan-2013'), 7) = 0; 

每原来的问题,你想在日期等于给定记录日期和之后的每七天。

相关问题