728x90
반응형
DB2에서 아직 Function은 낯설지만 ... 필요에 의해서 ... Summary , Purge 부분에서 사용할 일이 있어서 ..
펑션을 한번 생성해 보았다..
기간을 주어지면 , 해당 기간 이전의 날짜를 YYYYMMDD 형식으로 리턴해 주는 펑션이다 .
CREATE FUNCTION XM_DAY_AGO(in_day INTEGER)
RETURNS VARCHAR(8)
LANGUAGE SQL
DETERMINISTIC
RETURN
SELECT trim(char(year(current date - in_day day))) ||
case
when length(trim(char(month(current date - in_day day)))) < 2 then '0' || trim(char(month(current date - in_day day)))
else trim(char(month(current date - in_day day)))
end ||
case
when length(trim(char(day(current date - in_day day)))) < 2 then '0' || trim(char(day(current date - in_day day)))
else trim(char(day(current date - in_day day)))
end
FROM sysibm.sysdummy1
위의 스크립트로 펑션 생성 후 다음과 같이 사용하면 됨.
SELECT xm_day_ago(3) FROM sysibm.sysdummy1 ;
요런식으로 ...
펑션을 한번 생성해 보았다..
기간을 주어지면 , 해당 기간 이전의 날짜를 YYYYMMDD 형식으로 리턴해 주는 펑션이다 .
CREATE FUNCTION XM_DAY_AGO(in_day INTEGER)
RETURNS VARCHAR(8)
LANGUAGE SQL
DETERMINISTIC
RETURN
SELECT trim(char(year(current date - in_day day))) ||
case
when length(trim(char(month(current date - in_day day)))) < 2 then '0' || trim(char(month(current date - in_day day)))
else trim(char(month(current date - in_day day)))
end ||
case
when length(trim(char(day(current date - in_day day)))) < 2 then '0' || trim(char(day(current date - in_day day)))
else trim(char(day(current date - in_day day)))
end
FROM sysibm.sysdummy1
위의 스크립트로 펑션 생성 후 다음과 같이 사용하면 됨.
SELECT xm_day_ago(3) FROM sysibm.sysdummy1 ;
요런식으로 ...
반응형