示例:
我希望将其转换为3/05/2018但不确定如何在Tableau / Oracle SQL中执行此操作。将这3个单独的数字转换为一周开头的逻辑是什么?本周将从周一开始。
由于
答案 0 :(得分:0)
以下查询应该为您提供所需的结果 -
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周都在这里硬编码以获得所需 导致这种情况。
结果: -
2018年3月5日
答案 1 :(得分:0)
我认为没有必要使用月号,您可以尝试下面的代码,
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