DB2怎么格式化日期类型字段为 'yyyy-mm-dd' 格式的字符串????

liqing7165 2009-08-28 11:17:16
现在日期类型的值为 2009-9-10 想格式化 为 'yyyymmdd'格式 的20090910 和'yyyy-mm-dd' 2009-09-10

请问在DB2中有没有类似的函数支持,谢谢!
...全文
7407 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzy2046 2009-08-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shijubo 的回复:]
转成'yyyy-mm-dd'格式:char(date,iso),iso是常量,表示日期转成字什么格式。
转成'yyyymmdd'格式:char(replace(char(date,iso),'-',''),8),将上面结果中的短横去掉后转换成8位的字符。
[/Quote]

char(date,iso)的结果格式是mm/dd/yyyy
例:SELECT CHAR(CURRENT DATE,ISO) FROM SYSIBM.SYSDUMMY1;
结果是:08/12/2009
要获得'yyyy-mm-dd' 直接char(date)就行了
例:SELECT CHAR(CURRENT DATE) FROM SYSIBM.SYSDUMMY1;
结果为:2009-08-12

以上均为本人8月12日的亲测结果。


转为yyyymmdd可用DECIMAL()函数
例:SELECT DECIMAL(CURRENT DATE)FROM SYSIBM.SYSDUMMY1
结果是:20090829




yangxiao_jiang 2009-08-29
  • 打赏
  • 举报
回复
http://www.ibm.com/developerworks/cn/data/library/techarticles/0211yip/0211yip3.html
shijubo 2009-08-29
  • 打赏
  • 举报
回复
我回复的当天,CHAR(CURRENT DATE,ISO)的测试结果是'yyyy-mm-dd'格式,看来与系统环境设置和DB2版本有关。楼主可在自己的环境测试一下。
liyan93834183 2009-08-28
  • 打赏
  • 举报
回复
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

这个函数好像可以满足
liqing7165 2009-08-28
  • 打赏
  • 举报
回复
高手请给予帮助,谢谢。
shijubo 2009-08-28
  • 打赏
  • 举报
回复
转成'yyyy-mm-dd'格式:char(date,iso),iso是常量,表示日期转成字什么格式。
转成'yyyymmdd'格式:char(replace(char(date,iso),'-',''),8),将上面结果中的短横去掉后转换成8位的字符。
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL. PostgreSQL支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、视图、事务完整性等。 PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。 事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类的支持,其中有些数据类可以说连商业数据库都不具备, 比如 IP 类和几何类等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。 本课程作为PostgreSQL数据库管理之三,主要讲解以下内容:1.     PostgreSQL约束讲解和剖析2.     PostgreSQL数据类3.     PostgreSQL的结构管理4.     PostgreSQL条件表达式和操作5.     PostgreSQL使用小技巧

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧