客戶化DB2日期是我們經常遇到的問題,如果您的客戶希望日期格式為YYYYMMDD怎麼辦呢?最好的方法時寫一個客戶化的格式化函數:
下面時就是客戶化DB2日期函數的例子:
- 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
這個公式乍看起來比較復雜,細看一下,您會發現它還是很簡單易用的。首先,使用公共表表達式(Common Table Expression)將時間格式中每一個部分提取出來,然後根據用戶提供的日期格式重新組裝輸出。這個函數很靈活,用戶可以簡單地添加WHEN子句來加上期望的日期格式。使用函數時,如果輸入的日期格式沒有,函數還可以輸出出錯信息。
DB2刪除數據時的小技巧
DB2事件監控的命令
教您如何實現DB2在線導入
DB2在線導出的方法
db2存儲過程常用語句