AIX 5.3.8.1上的db2 DB是使用如下命令创建:
db2 "create db dbname on /home/dbname using codeset GBK territory CN"
对于db2 v8.1 fixpak18:
db2 "select substr(cast(current date as varchar(10)),1,4) from sysibm.SYSDUMMY1"
09/0
db2 "CREATE PROCEDURE TT.TEST(OUT RUNSTATUS VARCHAR(10)) LANGUAGE SQL BEGIN select substr(cast(current date as varchar(10)),1,4) into runstatus from sysibm.SYSDUMMY1;END"
db2 "call tt.test(?)"
09/0
db2 connect to DB_NAME
cd /home/db2inst1/sqllib/bnd
db2 bind @db2ubind.lst datetime ISO blocking all grant public
db2 "select substr(cast(current date as varchar(10)),1,4) from sysibm.SYSDUMMY1"
2009
db2 "CREATE PROCEDURE TT.TEST(OUT RUNSTATUS VARCHAR(10)) LANGUAGE SQL
BEGIN select substr(cast(current date as varchar(10)),1,4) into
runstatus from sysibm.SYSDUMMY1;END"
db2 "call tt.test(?)"
09/0
对于db2 v8.1 fixpak0:
db2 "select substr(cast(current date as varchar(10)),1,4) from sysibm.SYSDUMMY1"
09/0
db2 "CREATE PROCEDURE TT.TEST(OUT RUNSTATUS VARCHAR(10)) LANGUAGE SQL
BEGIN select substr(cast(current date as varchar(10)),1,4) into
runstatus from sysibm.SYSDUMMY1;END"
db2 "call tt.test(?)"
2009
不知道为什么会这样,不知道对这个db2 v8.1 fixpak0系统做了什么配置,不知道为什么date格式的存储和显示会是这样,不知道为什么直接使用sql和调用存储过程会有这样的区别?
Add @ 20100818:
同样的一条sql语句
select date(d_detected_date) from table_name;
在我的电脑上执行输出的结果和在我同事的windows7上执行的结果
不一样,原因在于客户端上的日期格式的问题,这个windows的机器在
区域选项,短日期那一栏有显示,windows7同样的地方是可以更改这个
日期显示方式的,
如果直接在服务器上执行这样的sql语句查询,其结果可能又不一样,
原理是一样的,跟服务器本身的locale设置是有关系的。
hostb159$locale
LC_TIME="en_US"
阅读(3581) | 评论(0) | 转发(0) |