SELECT cast(extract(YEAR from 날짜필드) as char(4)) ||
cast(extract(MONTH from 날짜필드) as char(1)) ||
cast(extract(day from 날짜필드) as char(2)) aaa
from 테이블
본 게시판에 있는 답변내용입니다.
http://interbase.borlandforum.com/impboard/impboard.dll?action=read&db=fb_qna&no=1862
초짜 불새 님이 쓰신 글 :
: 푸른솔님의 답변 감사합니다.
: 근데 제가 원한 답변하고는 좀 다르군요..-_-;;
: 제가 원한것은 current_date의 날짜 포맷(2006-02-14 또는 02.14.2006 형태)을
: '20060214' 형태로 바꾸어주는 것을 알고자 합니다.
:
: cast(current_date-60 as char(10)) 이렇게 하면 60일 이전의 날짜를 '2006-09-27' 이런 형식으로
: 반환합니다. 그런데 저는 pyear 라는 날짜가 들어간 필드(varchar)의 데이타가 '20060927'과 같은 형식으로
: 들어가 있으므로 현재날짜9current_date)를 기준으로 60일전부터 10일전까지의 데이타를 가져오고 싶으나
: 그게 않되는 것입니다. -_-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
: 그래서 별 쌩쑈를 다했슴다.. cast(current_date-60 as char(10)) 해서 '2006-09-27' 이 나오면 replace 함수
: 를 이용해 '-'를 제거해 pyear와 비교하려고 했는데 또 replace 함수가 없더군요..흑흑..
: 이제 어떻게 해야 할지...
:
: select * from 테이블 where pyear >=cast(current_date-60 as char(10))
: and pyear <= cast(current_date-10 as char(10))
: ====> 아무런 결과를 가져오지 못합니다.
:
: select * from 테이블 where pyear >=cast(current_date-60 as char(10))
: ====> 모든 레코드를 다 가져 옵니다.
:
: 어떻게 하여야 하나요?
:
:
: 푸른솔 님이 쓰신 글 :
: : 1. Date => 문자
: : select cast(날짜필드 as char(10))
: : from 테이블
: : where cast(날짜필드 as char(10)) = '2006-02-14'
: :
: : 2. 문자 => Date
: : select cast(날짜필드 as char(10))
: : from 테이블
: : where 날짜필드 = cast('2006-02-14' as date)
: :
: : 초짜 불새 님이 쓰신 글 :
: : : 파이어버드 2.0을 씁니다.
: : : 그런데..
: : : pyear = '20060215' 이런 형태의 varchar(8) 입니다.
: : : 문제는 pyear 를 오늘날짜와 비교하여 pyear가 오늘보다 2개월 이전인 데이타를
: : : 가져올려고 하는데 불새의 날짜 포맷 함수를 찾기 어렵군요.
: : :
: : : 질문 ) CURRENT_DATE 이런 날짜 형식을 내가 원하는 형태, 예를 들면 '20060101' 이나 '02 23 2006' 머
: : : 이런 식으로 형태를 바꾸어 줄 수 있는 함수가 무엇인지요.
: : :
: : : 대충 오라클 형식을 빌어서 만들었는데..에러가 뜨는군요..당연한거겠지만.
: : :
: : : select * from tablex where pyear >= cast(add_month(CURRENT_DATE,-2),'yyyymmdd')