客户化DB2日期/时间格式的示例_DB2_数据库_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 数据库 > DB2 > 客户化DB2日期/时间格式的示例

客户化DB2日期/时间格式的示例

 2010/12/16 8:14:14    程序员俱乐部  我要评论(0)
  • 摘要:客户化DB2日期是我们经常遇到的问题,如果您的客户希望日期格式为YYYYMMDD怎么办呢?最好的方法时写一个客户化的格式化函数:下面时就是客户化DB2日期函数的例子:createfunctionts_fmt(TStimestamp,fmtvarchar(20))returnsvarchar(50)returnwithtmp(dd,mm,yyyy,hh,mi,ss,nnnnnn)as(selectsubstr(digits(day(TS)),9),substr(digits(month(TS))
  • 标签:客户

客户化DB2日期是我们经常遇到的问题,如果您的客户希望日期格式为YYYYMMDD怎么办呢?最好的方法时写一个客户化的格式化函数:

下面时就是客户化DB2日期函数的例子

  1. create function ts_fmt(TS timestamp, fmt varchar(20))   
  2. returns varchar(50)   
  3. return   
  4. with tmp (dd,mm,yyyy,hh,mi,ss,nnnnnn) as   
  5. (   
  6. select   
  7. substr( digits (day(TS)),9),   
  8. substr( digits (month(TS)),9) ,   
  9. rtrim(char(year(TS))) ,   
  10. substr( digits (hour(TS)),9),   
  11. substr( digits (minute(TS)),9),   
  12. substr( digits (second(TS)),9),   
  13. rtrim(char(microsecond(TS)))   
  14. from sysibm.sysdummy1   
  15. )   
  16. select   
  17. case fmt   
  18. when 'yyyymmdd'   
  19. then yyyy || mm || dd   
  20. when 'mm/dd/yyyy'   
  21. then mm || '/' || dd || '/' || yyyy   
  22. when 'yyyy/dd/mm hh:mi:ss'   
  23. then yyyy || '/' || mm || '/' || dd || ' ' ||   
  24. hh || ':' || mi || ':' || ss   
  25. when 'nnnnnn'   
  26. then nnnnnn   
  27. else   
  28. 'date format ' || coalesce(fmt,' ') ||   
  29. ' not recognized.'   
  30. end   
  31. from tmp  

这个公式乍看起来比较复杂,细看一下,您会发现它还是很简单易用的。首先,使用公共表表达式(Common Table Expression)将时间格式中每一个部分提取出来,然后根据用户提供的日期格式重新组装输出。这个函数很灵活,用户可以简单地添加WHEN子句来加上期望的日期格式。使用函数时,如果输入的日期格式没有,函数还可以输出出错信息。

发表评论
用户名: 匿名