보여주신게 원하는 출력값인가요?
출력값을 얻기 위한 입력값은 뭔가요?
입력값은 날짜 2021-01-01 ~ 2021-01-04입니다.
시작 종료는 사용자가 변경할수있습니다ㅠㅠ
1. 중간에 ( 2021-01-02 19:00 ~ 2021-01-03 07:00 ) 가 없네요?
- 있어야 하는 것 아닌가요?
- 시간상으로 겹치지 않는데요?
2. 없어야 하는게 맞다면?
- 종료일을 잘못 입력해서 2021-01-04 가 아닌 2021-01-05 로 입력하는 경우는 없는지?
- 2021-01-05 로 입력하면 결과가 어떻게 나와야 할까요?
대댓글.다는법을 몰라서 우선 죄송합니다ㅠㅠ보이질 않네요
제가 원하는건 2번 이 맞습니다!
만약 2021-01-05가 들어온다면
시작일자 종료일자
2021-01-05 07:00 NULL로 하고싶습니다
SELECT TO_CHAR(sdt + LEVEL * 2 - 2, 'yyyy-mm-dd') || ' 19:00' sdt
, CASE WHEN sdt + LEVEL * 2 - 1 <= edt THEN
TO_CHAR(sdt + LEVEL * 2 - 1, 'yyyy-mm-dd') || ' 07:00' END edt
FROM (SELECT TO_DATE('2022-01-01', 'yyyy-mm-dd') sdt
, TO_DATE('2022-01-05', 'yyyy-mm-dd') edt
FROM dual
)
CONNECT BY LEVEL <= CEIL((edt - sdt + 1) / 2)
;
정말감사합니ㅏ!!!!