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

Sql 在oracle中获取给定周数的第一天,sql,oracle,Sql,Oracle,请帮助在oracle中导出给定星期的第一天\u no,而不是从给定日期开始。您可以尝试以下查询:- 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; 这可能

请帮助在oracle中导出给定星期的第一天\u no,而不是从给定日期开始。

您可以尝试以下查询:-

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;
这可能会对您有所帮助。

使用此查询

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

:num是从2015年开始的周数,或者将需要的年份替换为sysdate。

您可以使用此函数获取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;
/

你的数据是什么?你尝试过什么?为什么会有人投反对票。这是一个非常清楚和好的问题。输入:一周的数字。输出那一周的第一天,请指定你认为是一周的第一天。那是星期天,还是星期一,还是别的什么?在Oracle中还有几个星期数的定义。请看一看这个问题:当您投票以“原因复制”结束时,提供副本的链接将很有帮助。这并不总是正确的:从duaL中选择“CHAR TRUNC TruncDATE”2012-01-01“,“yyyy”+1-1*7,“IW”,“yyy-IW”;返回2011-52,而不是2012-01。从duaL中选择TRUNC TruncDATE'2012-01-01','yyyy'+1-1*7','IW';返回2011年12月26日,实际上是2012年1月1日第一周的第一天是-但不是2012年第一个ISO周的星期一。第一个ISO周是包含1月4日的一周。如果使用非标准定义,可能需要指定如何定义第一周。是,是。。。但我们仍然不知道他到底想要什么,这只是实现他的任务的额外想法。也许他不想参加iso周: