【IT168 技术文章】
DB2 改变日期格式
在日期的表示方面,这也是我经常碰到的一个问题。用于日期的缺省格式由数据库的地区代码决定,该代码在数据库创建的时候被指定。例如,我在创建数据库时使用 territory=US 来定义地区代码,则日期的格式就会像下面的样子:
values current date
1
----------
05/30/2003
1 record(s) selected.
也就是说,日期的格式是 MM/DD/YYYY. 如果想要改变这种格式,你可以通过绑定特定的 DB2 工具包来实现. 其他被支持的日期格式包括:
DEF 使用与地区代码相匹配的日期和时间格式。
EUR 使用欧洲日期和时间的 IBM 标准格式。
ISO 使用国际标准组织(ISO)制订的日期和时间格式。
JIS 使用日本工业标准的日期和时间格式。
LOC 使用与数据库地区代码相匹配的本地日期和时间格式。
USA 使用美国日期和时间的 IBM 标准格式。
在 Windows 环境下,要将缺省的日期和时间格式转化成 ISO 格式(YYYY-MM-DD),执行下列操作:
1. 在命令行中,改变当前目录为 sqllib\bnd 。
例如:
在 Windows 环境: c:\program files\IBM\sqllib\bnd
在 UNIX 环境: /home/db2inst1/sqllib/bnd
2. 从操作系统的命令行界面中用具有 SYSADM 权限的用户连接到数据库:
db2 connect to DBNAME
db2 bind @db2ubind.lst datetime ISO blocking all grant public
(在你的实际环境中, 用你的数据库名称和想使用的日期格式分别来替换 DBNAME and ISO。)
现在,你可以看到你的数据库已经使用 ISO 作为日期格式了:
values current date
1
----------
2003-05-30
1 record(s) selected.
在 Windows 环境下,要将缺省的日期和时间格式转化成 ISO 格式(YYYY-MM-DD),
date(char(date("2008/12/12 19:22:38"),iso))
db2 select char(current date,DEF) from org
db2 select char(current date,EUR) from org
db2 select char(current date,ISO) from org
db2 select char(current date,JIS) from org
db2 select char(current date,LOC) from org
db2 select char(current date,USA) from org