티스토리 뷰

반응형

안녕하세요. 오라클 페이스북 게시물에서 재미있는 예제가 있어서 소개드리려고 합니다.

보통 TO_DATE 함수를 사용해서 문자열을 DATE나 TIMESTAMP 형식으로 변환할텐데요.

이번에 DATE 리터럴이라는 방식을 알게됐습니다. 아래는 간단한 예제입니다.

SQL> select DATE '2018-12-31' from dual;

DATE'2018
---------
31-DEC-18

위와 같이 date 키워드에 이어서 날짜형식의 문자열을 입력하면 DATE 형식의 데이터가 출력됩니다.

TIMESTAMP도 DATE와 유사하게 사용할 수 있습니다. INTERVAL도 가능하네요.

SQL> select TIMESTAMP '1999-10-29 01:30:00 US/Pacific PDT' from dual;

TIMESTAMP'1999-10-2901:30:00US/PACIFICPDT'
---------------------------------------------------------------------------
29-OCT-99 01.30.00.000000000 AM US/PACIFIC

SQL> select INTERVAL '120' HOUR(3) from dual;

INTERVAL'120'HOUR(3)
---------------------------------------------------------------------------
+005 00:00:00

TO_DATE보다 사용법이 간편해서 유용할 듯 합니다.

 

오라클에서 소개한 예제에서는 CONNECT BY 절을 써서 응용한 방법이 나와있습니다.

원래 소개하는 내용은 Partitioned Outer Join 이긴 합니다만 ^^;

SQL> select date'2018-12-31' + level calendar_date
  2  from   dual
  3  connect by level <= 3;

CALENDAR_DATE
---------
01-JAN-19
02-JAN-19
03-JAN-19

 

 

https://livesql.oracle.com/apex/livesql/file/content_I7LPER4LAN3DWSWHBOTVTCNIE.html?fbclid=IwAR3XMq8b6JWWXgCAXvJn_8vF__OyPvR2YSGAkntCO09wTGFIkrIFlK9Csws

https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm

반응형
댓글