获取oracle中给定周数的第一天

时间:2015-05-22 07:33:14

标签: sql oracle

请帮助从oracle中获取给定week_no的第一天,而不是从给定日期开始。

3 个答案:

答案 0 :(得分:2)

您可以尝试以下查询: -

SELECT NEXT_DAY(MAX(d), 'SUN') REQUESTED_SUN
FROM (SELECT TO_DATE('01-01-2015', 'DD-MM-YYYY') + (ROWNUM-1) d FROM DUAL CONNECT BY LEVEL <= 366)
WHERE TO_CHAR(d, 'WW') = Your_Desired_WEEK_NO-1;

这可能对您有所帮助。

答案 1 :(得分:2)

使用此查询

Select TRUNC (Trunc(sysdate,'yyyy')+(:num-1)*7,'IW') from duaL;

:num是从2015年开始的星期数,或者将年份换成sysdate而不是sysdate。

答案 2 :(得分:2)

您可以使用此功能获取ISO周的日期:

CREATE FUNCTION TO_ISO_WEEK_DATE(
  week NUMBER,
  year NUMBER
) RETURN DATE DETERMINISTIC
IS
BEGIN
  RETURN NEXT_DAY(
          TO_DATE( TO_CHAR( year, '0000' ) || '0104', 'YYYYMMDD' )
            - INTERVAL '7' DAY, 'MONDAY'
         )
         + ( week - 1 ) * 7;
END TO_ISO_WEEK_DATE;
/