sybase/oracle 날짜 형식 형 변환하기(convert / to_char)
매번 사용하지만 sybase와 oracle을 동시에 사용하거나, 오랜만에 db 툴을 바꿔 사용하다 보면 어쩔 수 없이
두 개를 혼돈하거나, 생각나지 않는 경우가 있습니다.
일이 바쁜 와중이라면 더더욱 생각이 안 날 수 있지요.
그래서 sybase와 oracle간에 동일한 기능들을 비교 정리해 보려 합니다.
오늘 날짜 확인하는 방법
-.sybase에서 오늘 날짜를 확인해보자!
select convert(varchar,getdate(),112) => 출력 (20220520)
위와 같이 출력이 됩니다.
데이타를 조회하다 보면 date형식의 데이터를 char형으로 조회해야 할 일이 많은데요.
그럴 때 방법을 정리해 볼게요
select convert(varchar,날짜데이터, convertType)` 형식으로 쓰고 *convertType * 위치에 숫자가 들어갈 때
아래 적힌 형식대로 출력이 됩니다.
이제 막 sybase를 공부를 시작하신 분이라면 실습으로 하나하나 숫자를 바꿔가면 조회해보시면 좋을 것 같습니다.
예시로 옆에 찍힌 날짜는 2007년 8월27일입니다.
실제 쿼리를 실행 시
select vonvert(varchar,getdate(),112) from iqdummy;
출력 : 20220520
convertType = 출력형식
0 = Aug 27 2007 5:28PM
1 = 08/27/07
2 = 07.08.27
3 = 27/08/07
4 = 27.08.07
5 = 27-08-07
6 = 27 Aug 07
7 = Aug 27, 07
8 = 17:23:35
9 = Aug 27 2007 5:28:08:563PM
10 = 08-27-07
11 = 07/08/27
12 = 070827
13 = 07/27/08
14 = 08/07/27
15 = 27/07/08
16 = Aug 23 2007 17:28:08
18 = 15:17:08
19 = 5:11:39:086PM
20 = 17:12:30:633
21 = 07/08/27
22 = 07/08/27
100 = Aug 27 2007 5:28PM
101 = 08/27/2007
102 = 2007.08.07
103 = 27/08/2007
104 = 27.08.2007
105 = 27-08-2007
106 = 27 Aug 2007
107 = Aug 27, 2007
108 = 17:28:08
109 = Aug 27 2007 5:28:08:563PM
110 = 08-27-2007
111 = 2007/08/27
112 = 20070827
113 = 2007/27/08
114 = 08/2007/27
115 = 27/2007/08
116 = Aug 23 2007 17:28:08
응용해볼까요??
select convert(char,GETDATE(),112) : 오늘날짜를 YYYYMMDD로
select convert(char(8), DATEADD(DD,-1,getdate()) ,112) : 현재 날짜 하루전을 yymmdd형식으로 출력
select convert(char(8), DATEADD(DD,-1,'20220520') ,112) : 2022년 5월 20일 전날을 출력. string → datetime은 convert라는 함수를 사용하지 않고 내부적(implicit)으로 자동으로 변경됩니다
select str_replace( convert(varchar,getdate(),20),':',null) : 현재 분일초,밀리세컨드까지: 152515853
select convert(varchar,GETDATE(),112) || str_replace( convert(varchar,getdate(),20),':',null) : 현재 연월일시분초밀리세컨드를 다 붙여서 조회가 됩니다.
-.oracle에서 오늘 날짜를 확인해보자!
select to_char(sysdate,'yyyymmdd') from dual;
출력 : 20220520
오라클에서 날짜형 데이터를 char 형으로 변환할 때는 to_char() 함수를 사용하게 됩니다.
그 외 숫자로 변형(to_number(), to_date()...등등 오라클이 조금 더 직관적인 것 같네요.)
to_char(sysdate,'yyyymmdd')
yyyymmdd외 시간까지 표현하고 싶다면
yyyymmddhh24miss : 20220520141010 => 시분까지 표시하며 시는 24시간 기준으로 표기됩니다.
아래 표를 참고하세요~.
'개발자 유용한 정보들' 카테고리의 다른 글
영종도 물회맛집 무지개 물회, 베이커리 카페 마시랑제빵소 추천.(feat.내돈내산) (0) | 2022.06.03 |
---|---|
엑셀(EXCEL) 단축키 모음 초급1 (feat.우리 이제 칼퇴하자구욧!!) (0) | 2022.05.28 |
sybase 조회되는 결과값 제한하는법 top 10 (oracle rowcount()) (0) | 2022.05.26 |
sybase 조회데이타 순번 달기, row_number(), partition by, rank() (0) | 2022.05.23 |
sybase vs oracle 함수(charindex, instr,string,concat,ifnull,substr)비교하기 (0) | 2022.05.21 |