반응형


ORACLE(오라클)에는 날짜를 표시하는 형이 DATE 형 입니다. 


그런데, 문자열로도 날짜를 표시 합니다. 


이때 해당 날짜에서 몇일을 뺀다 든지, 몇일을 더한다든지 또는 몇시간을 빼려면 어떻게 해야할까요.


가장 좋은 방법은 DATE 형으로 바꿔서 DATE 연산을 하는 것이 최선이겠지요 ^^


그래서 사용하는 함수가 TO_DATE 입니다.


사용법은 


TO_DATE(문자열,날짜패턴) 


입니다.


여기서 문자열은 '20161010 11:11:11' 같은 문자로 된 년월일시분초 정보입니다.


날짜 패턴은


YYYY : 4자리 년도


MM : 2자리 월


DD : 2자리 일


HH24 : 24시간 단위 시간


MI : 분


SS : 초


등입니다. 


좀 더 상세 한 내용은 https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i170559 URL에서 확인 하실 수 있습니다. 



실제 위의 문자열을 TO_DATE로 DATE 형으로 변환해 보면 아래와 같습니다. 


SELECT TO_DATE('20161010 11:11:11' , 'YYYYMMDD HH24:MI:SS') FROM DUAL


로 하시면 됩니다.


MySQL STR_TO_DATE 함수는 http://talkit.tistory.com/268 을 참조 하시면 됩니다.


감사합니다.




반응형
반응형


오늘은 ORACLE에서 문자열 길이를 젤 때 사용하는 LENGTH를 설명하려고 합니다.


최근에 우편번호 작업을 한적이 있습니다.


우편번호가 6자리에서 5자리로 바꼈죠 ^^;;


그래서 구 우편번호를 구해서 신 우편번호로 변경해 주는 작업을 했습니다.


그 때 오랫만에 LENGTH 함수를 사용했습니다.


사용 법은 



LENGTH(구하하고자하는 문자열) 



입니다.


우편번호가 여섯 자리이기 때문에 가상의 테이블 MEMBER에 들어 있는 우편번호가 6자리인 회원정보를 가져오는 쿼리 입니다. 그래서 6섯 자리를 5자리로 변환해 줘야겠지요. ^^;


SELECT * FROM MEMBER WHERE LENGTH(ZIPCODE) = 6


위와 같이 하시면, 6자리 우편번호를 가진 MEMBER의 모든 레코드를 가져옵니다.


가끔 기억이 안나기 때문에 적어 둡니다.


즐거운 하루 되십시오.



반응형
반응형





오랫만에 블로그에서 글을 씁니다.


C나 PHP의 경우는 SUBSTR 함수가 문자열의 시작값이 0 입니다.


하지만, 데이타베이스의 경우 보통 ORACLE, MySQL 등에서 사용할 때는 1부터 시작 합니다.



SUBSTR(문자열,시작 Index[, 글자수]);


기본 적인 사용 방법은 위와 같습니다.


저기서 글자 수 넣지 않으셔도 됩니다.


실제로 사용을 해보면,



SELECT SUBSTR('가야태자의IT이야기', 1) FROM DUAL 


위와 같이 하면 모든 문자열을 다 가져 옵니다.



SELECT SUBSTR('가야태자의IT이야', 2,2) FROM DUAL 


두번째 자리부터 2자리를 가져 옵니다.


야태

를 뱉습니다. 


끝으로 시작 인덱스를 -로 넣으셔도 됩니다. 그러면 뒤에서 그 자리수만큰 가져 옵니다.


SELECT SUBSTR('가야태자의IT이야', -3) FROM DUAL 


이렇게 하시면 결과 값은 

   이야기 

를 뱉습니다.


즐거운 하루 되십시오.


감사합니다.



반응형

+ Recent posts