buhao 发表于 2016-11-15 07:10:54

db2自定义时间函数

1、定义函数(时间函数 )
create function ts_fmt(TS timestamp, fmt varchar(20))
returns varchar(50)
return
with tmp (dd,mm,yyyy,hh,mi,ss,nnnnnn) as
(
    select
    substr( digits (day(TS)),9),
    substr( digits (month(TS)),9) ,
    rtrim(char(year(TS))) ,
    substr( digits (hour(TS)),9),
    substr( digits (minute(TS)),9),
    substr( digits (second(TS)),9),
    rtrim(char(microsecond(TS)))
    from sysibm.sysdummy1
    )
select
case fmt
    when 'yyyymmdd'
      then yyyy || mm || dd
    when 'mm/dd/yyyy'
      then mm || '/' || dd || '/' || yyyy
    when 'yyyy/dd/mm hh:mi:ss'
      then yyyy || '/' || mm || '/' || dd || ' ' ||
               hh || ':' || mi || ':' || ss
    when 'nnnnnn'
      then nnnnnn
    else
      'date format ' || coalesce(fmt,' <null> ') ||
      ' not recognized.'
    end
from tmp

-----------------------------------

2、函数调用方法
select ts_fmt(timestamp(begintime),'yyyymmddhhmiss')||'000' as time from TRANS_SEND;
页: [1]
查看完整版本: db2自定义时间函数