인포믹스(informix) 에서 현재날짜를 조건으로하여 쿼리할 일이 생겼다. 상황은 이러하다.
DB 컬럼에 글 쓴 날짜(컬럼명 : reg_dt | 속성 varchar)와 게시마감 날짜(컬럼명 : lim_dt | 속성 varchar)가 존재.
가령 reg_dt에 2013년 6월 30일 00시 00분이 입력되고 lim_dt에 2014년 6월 30일 00시 00분이 입력되었다고 치자.
게시판 조건은 lim_dt가 현재날짜보다 과거일 경우 쿼리하지 않아야 한다는 조건이다.
그렇다면 사실 reg_dt는 신경쓰지 않아도 되며 lim_dt가 현재보다 과거인지만 체크를 하면 되는데 어떻게 해야하는지 informix는 잘 모르는 상황.
검색을 해보니 아래와 같은 방식으로 쿼리에 성공했다.
1 | SELECT * FROM 테이블명 WHERE lim_dt >= to_char(current, "%Y%m%d%H%M%S") | cs |
to_char(current, "%Y%m%d%H%M%S")란, 현재 시스템 시간을 포맷, YYYYMMDDHHMMSS(년월일시분초)로 가져오며, 이를 to_char 형식으로 변환하고 lim_dt와 비교를 한다는 것이다.
내가 비교하려는 컬럼이 varchar 형식이기 때문에 to_char로 받은 듯 하다. 아직 data 형식의 컬럼과는 비교하지 않았다.
주의할 점은, 포맷변환을 할 때 %Y%m%d%H%M%S 에서와 같이 년/시/분/초 는 대문자로 쓰여지고 월/일은 소문자로 쓰여졌는데, 이거 대소문자 구분 안하면 월이 분으로 표시가 되는 불상사가 생기니 주의하시기 바란다.
'어장 Develop > 어장 DBMS' 카테고리의 다른 글
[DB Error] java.lang.OutOfMemoryError: Java heap space (2) | 2013.08.02 |
---|---|
equal to 작업에서의"Korean_Wansung_CS_AS"과(와) "Korean_Wansung_CI_AS" 간의 데이터 정렬 충돌을 해결할 수 없습니다. (0) | 2013.07.05 |
[MSSQL] MAX 함수 NULL 일 때 치환 (0) | 2013.06.26 |
[Oracle] Tablespace 생성 및 추가, 삭제 (0) | 2012.08.17 |
[oracle] system 계정 비밀번호 분실과 계정 lock 해결법 (1) | 2012.08.13 |