2018년 2월 26일 월요일

Oracle SQL - Calendar(Date Row)

개발 환경
OS : Windows 8 64 Bit
Platform : Web (http://sqlfiddle.com)
Project :
DBMS : ORACLE
My mental state : not good
The reliability of this article : High

간단하게 오라클로 날짜 Row 생성하기
해당 쿼리는 주로 표준용 날짜 데이터를 가져오기 위해 만든 것입니다.

그럼 우선 DB SQL Test : <Where are U?>
로 들어가서,
좌측 상단에 실행할 DB 툴을 oracle 로 선택.

 왼쪽 스키마 생성은 그냥 아무거나. 본인은
create table log_table
( message varchar2(200)
)
입력 후 Build Schema 버튼 클릭.
오른쪽 쿼리란에 입력. 쿼리는
SELECT DEEP_1.*,
       CASE
       WHEN C_DAY_NUM = 1 THEN 'SUN'
       WHEN C_DAY_NUM = 2 THEN 'MON'
       WHEN C_DAY_NUM = 3 THEN 'TUE'
       WHEN C_DAY_NUM = 4 THEN 'WED'
       WHEN C_DAY_NUM = 5 THEN 'THU'
       WHEN C_DAY_NUM = 6 THEN 'FRI'
       WHEN C_DAY_NUM = 7 THEN 'SAT'
       ELSE
         'WHAR?'
       END C_NAME
  FROM ( SELECT TO_CHAR(TO_DATE('20180101', 'YYYYMMDD') + LEVEL - 1, 'YYYYMMDD') AS C_DATE,
                TO_CHAR(TO_DATE('20180101', 'YYYYMMDD') + LEVEL - 1, 'YYYY-MM-DD') AS C_P_DATE,
                TO_CHAR(TO_DATE('20180101', 'YYYYMMDD') + LEVEL - 1, 'YYYY') AS C_YEAR,
                TO_CHAR(TO_DATE('20180101', 'YYYYMMDD') + LEVEL - 1, 'MM') AS C_MON,
                TO_CHAR(TO_DATE('20180101', 'YYYYMMDD') + LEVEL - 1, 'DD') AS C_DAY,
                TO_CHAR(TO_DATE('20180101', 'YYYYMMDD') + LEVEL - 1, 'D') AS C_DAY_NUM,
                TO_CHAR(TO_DATE('20180101', 'YYYYMMDD') + LEVEL - 1, 'WW') AS C_WEEK_NUM,
                TO_CHAR(TO_DATE('20180101', 'YYYYMMDD') + LEVEL - 1, 'W') AS C_WEEK_NUM_OF_MON
           FROM DUAL
CONNECT BY LEVEL <= (TO_DATE('20181231', 'YYYYMMDD') -
                     TO_DATE('20180101', 'YYYYMMDD') +1)) DEEP_1; 

하단 결과가 짠!!!

그럼 오늘도 힘내고 좋은 하루!!!

Fear can hold you prisoner, hope can set you free.
두려움은 너를 포로로 묶어두지만, 희망은 너를 자유롭게 할 것이다. - 쇼생크탈출

댓글 없음:

댓글 쓰기

대항해시대 조선 랭작

숙련도 획득 방법 선박 건조, 선박 강화, 전용함 추가시 숙련도 획득 모두 동일한 공식 적용 획득 숙련도 공식 기본 획득 숙련도 ≒ int{건조일수 × 현재랭크 × (0.525)} 이벤트 & 아이템 사용...