2015-02-23 53 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; 

每原來的問題,你想在日期等於給定記錄日期和之後的每七天。

相關問題