繁体   English   中英

周,月,年至周初的日期

[英]Week, Month, Year number to beginning of week Date

例:

  • 月号:03
  • 周数:10
  • 年:2018

我希望将其转换为3/05/2018,但不确定如何在Tableau / Oracle SQL中执行此操作。 将这3个独立的数字转换成一周开始的逻辑是什么? 这个星期将从星期一开始。

谢谢

以下查询将为您提供所需的结果-

SELECT
    TO_CHAR(START_DATE,'MM/DD/YYYY') AS START_DATE
FROM
(
    SELECT 
        (TRUNC(TO_DATE('2018','YYYY'),'DAY') + 1) + ((LEVEL - 1) * 7) AS START_DATE,
        (TRUNC(TO_DATE('2018','YYYY'),'DAY') + 1) + ((LEVEL - 1) * 7) + 6 AS END_DATE, LEVEL AS WEEK
    FROM 
        DUAL
    CONNECT BY LEVEL <= (((TO_DATE('2018','YYYY') + INTERVAL '1' YEAR) + INTERVAL '-1' DAY) - (TO_DATE('2018','YYYY')))/7
)
WHERE
    WEEK = 10
;

在这种情况下,此处将硬编码2018年和第10周,以获得所需的结果。

结果:-

开始日期

03/05/2018

我认为月号不是必需的,您可以尝试以下代码,

SELECT NEXT_DAY(TO_DATE((&week_no*7)||' &yyyy', 'DDD YYYY')-7, 2) date_
  FROM dual;

week_no = 10
yyyy = 2018

DATE_   
---------
05-MAR-18

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM