날짜 풀기 문의드립니다 0 6 646

by DB초보자입니다 [Oracle 기초] [2022.01.25 13:20:40]


안녕하세요

sql작성 중 문의가 있어 도움을 받고자합니다.

현재 만들고싶은데이터가

strdt enddt
2021-01-01 19:00 2021-01-02 07:00
2021-01-03 19:00 2021-01-04 07:00

이런식으로 쭈욱 원하는 일자만큼 풀고싶은데 도통 어찌해야될지ㅠㅠ감이 오질않아서요ㅠㅠ선배님들의 많은 도움부탁드립니다

by 마농 [2022.01.25 13:30:02]

보여주신게 원하는 출력값인가요?
출력값을 얻기 위한 입력값은 뭔가요?


by DB초보자입니다 [2022.01.25 13:36:18]

입력값은 날짜 2021-01-01 ~ 2021-01-04입니다.

시작 종료는 사용자가 변경할수있습니다ㅠㅠ


by 마농 [2022.01.25 14:03:15]

1. 중간에 ( 2021-01-02 19:00 ~ 2021-01-03 07:00 ) 가 없네요?
- 있어야 하는 것 아닌가요?
- 시간상으로 겹치지 않는데요?
2. 없어야 하는게 맞다면?
- 종료일을 잘못 입력해서 2021-01-04 가 아닌 2021-01-05 로 입력하는 경우는 없는지?
- 2021-01-05 로 입력하면 결과가 어떻게 나와야 할까요?


by DB초보자입니다 [2022.01.25 14:06:10]

대댓글.다는법을 몰라서 우선 죄송합니다ㅠㅠ보이질 않네요

제가 원하는건 2번 이 맞습니다!

만약 2021-01-05가 들어온다면

시작일자             종료일자

2021-01-05 07:00  NULL로 하고싶습니다


by 마농 [2022.01.25 14:23:14]
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)
;

 


by DB초보자입니다 [2022.01.25 15:07:49]

정말감사합니ㅏ!!!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입