系统AIX 7.1,DB2 V10.5,发现DB2 Server的本地时间和OS时间有差异,执行以下SQL得到输出:
> db2 "select current timestamp as local, current timezone as timezone, current timestamp - current timezone as UTC from sysibm.sysdummy1"
LOCAL TIMEZONE UTC
-------------------------- -------- --------------------------
2016-05-10-06.51.06.265408 -50000. 2016-05-10-11.51.06.265408
1 record(s) selected.
> date
Tue May 10 19:51:46 BEIST 2016
比较两个输出发现DB2和OS相差了13个小时,问题是该怎么修改?
默认的DB2日期格式由数据库的数据库国家/地区代码(TERRITORY CODE)决定(数据库国家/地区代码是在数据库创建时确定的)。例如,在我的数据库时由数据库国家/地区代码US创建的,时间格式的输出如下:
values current date
1
----------
05/30/2003
即时间格式为DD/MM/YYYY。如果希望修改格式,您需要使用不同的时间格式重新联编DB2工具包。支持的格式有:
DEF 使用和数据库国家/地区代码相关的日期时间格式。
EUR 使用IBM欧洲标准日期时间格式。
ISO 使用ISO日期时间格式。
JIS 使用日本工业标准日期时间格式。
LOC 使用和数据库国家/地区代码结合的本地日期时间格式。
USA 使用IBM美国标准时间日期格式。
使用下面的步骤修改时间日期格式为ISO格式(YYYY-MM-DD):
1. 在命令行下,更改到sqllib\bnd目录。
例如:
在Windows平台: c:\program files\IBM\sqllib\bnd
在UNIX平台 : /home/db2inst1/sqllib/bnd
2.以SYSADM组成员的身份连接数据库:
db2 connect to 数据库名
db2 bind @db2ubind.lst datetime ISO blocking all grant public
收起