使用星期六作为星期结束日期计算oracle中的星期结束日期

问题描述:

给定Oracle中包含日期的字段,如何计算星期结束日期使用Sun到星期六作为您的星期。例如,如果日期是2015年1月26日(星期一),则查询应返回1/31/2015(这是一个星期六。如果日期是2015年1月31日,则查询应返回1 。/二千〇一十五分之三十一使用星期六作为星期结束日期计算oracle中的星期结束日期

考虑任何特定的日期/时间值,该表达式将返回前面的周日的午夜

TRUNC(whatever_time,'DAY') 

所以,你可以做的东西是这样的:

SELECT TRUNC(whatever_time,'DAY') week_starting, 
     TRUNC(whatever_time,'DAY') + 6 week_ending, 
     SUM(sales) 
    FROM table 
    GROUP BY TRUNC(whatever_time,'DAY') 

你会得到你需要的东西

请注意,TRUNC(whatever_time,'DAY')尊重称为“NLS_TERRITORY”的Oracle会话初始化参数。例如,在欧洲,星期一被认为是本周的第一个工作日。尝试这个。

ALTER SESSION SET NLS_TERRITORY=GERMANY; 
SELECT TRUNC(DATE '2013-12-31', 'DAY'), 
     TRUNC(DATE '2014-01-03', 'DAY') 
    FROM DUAL; 

这方面的一个完整的书面记录是在这里:http://www.plumislandmedia.net/sql-time-processing/using-sql-report-time-intervals-oracle/

+0

优秀......非常感谢。这正是我需要的! – Bob 2015-02-06 20:08:57