客戶化DB2日期/時(shí)間格式的示例
客戶化DB2日期是我們經(jīng)常遇到的問題,如果您的客戶希望日期格式為YYYYMMDD怎么辦呢?***的方法時(shí)寫一個(gè)客戶化的格式化函數(shù):
下面時(shí)就是客戶化DB2日期函數(shù)的例子:
- 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,' ') ||
- ' not recognized.'
- end
- from tmp
這個(gè)公式乍看起來比較復(fù)雜,細(xì)看一下,您會(huì)發(fā)現(xiàn)它還是很簡(jiǎn)單易用的。首先,使用公共表表達(dá)式(Common Table Expression)將時(shí)間格式中每一個(gè)部分提取出來,然后根據(jù)用戶提供的日期格式重新組裝輸出。這個(gè)函數(shù)很靈活,用戶可以簡(jiǎn)單地添加WHEN子句來加上期望的日期格式。使用函數(shù)時(shí),如果輸入的日期格式?jīng)]有,函數(shù)還可以輸出出錯(cuò)信息。
【編輯推薦】