用于日期的默认格式是由DB2数据库的地域代码(其可以在创建数据库时指定)确定。例如,我的数据库是使用territory = US创建的。因此日期格式如下所示:
values current date
1
----------
05/30/2003
1 record(s) selected.
您可能会从DB CFG获取地区代码。
db2 get db cfg | egrep 'code|territory'
Database territory = US
Database code page = 1208
Database code set = UTF-8
Database country/region code = 1
即,格式为MM/DD/YYYY。如果要更改格式,可以将db2实用程序包的集合绑定为使用不同的日期格式。
要使用SQL获得当前的日期,时间和时间戳,(基本上给你的日期格式是什么样的想法)引用适当的DB2寄存器: 的SYSIBM.SYSDUMMY1表是一种特殊的内存可以用来发现DB2的值表登记
db2 "SELECT current date FROM sysibm.sysdummy1 "
1
----------
06/02/2014
1 record(s) selected.
,如果我们离开了在功能上引号的日期功能仍然有效,甚至,但结果是不正确的:
db2 "SELECT date(2001-09-22) FROM sysibm.sysdummy1 "
1
----------
05/24/0006
1 record(s) selected.
当DATE函数获取字符串作为输入时,它假定它是DB2日期的有效字符表示形式,并相应地转换它。相反,当输入是数字时,函数假定它代表从当前时代开始(即0001-01-01)开始减去一天的天数。在上面的查询中,输入是2001-09-22,等于(2001-9)-22,等于1970天。
如果以上所有条件都适用,下面的命令应该适用于您的问题。
SELECT * FROM table WHERE registrationdate > '10/01/2002';
如何被定义的 “registrationdate” 列?也许列数据类型不是日期,如果是,那么你的原始查询应该已经工作。 – NealB