使用星期六作为星期结束日期计算oracle中的星期结束日期
Calculate the week ending date in oracle using Saturday as the week end date
给定 Oracle 中包含日期的字段,您将如何使用星期日至星期六作为您的星期来计算星期结束日期。例如,如果日期是 1/26/2015(星期一),则查询应该 return 1/31/2015(星期六)。如果日期是 1/31/2015,则查询应该 return 1/31/2015。
给定任何特定的日期/时间值,此表达式将 return 前一个星期日的午夜。
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/
给定 Oracle 中包含日期的字段,您将如何使用星期日至星期六作为您的星期来计算星期结束日期。例如,如果日期是 1/26/2015(星期一),则查询应该 return 1/31/2015(星期六)。如果日期是 1/31/2015,则查询应该 return 1/31/2015。
给定任何特定的日期/时间值,此表达式将 return 前一个星期日的午夜。
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/