用於日期的默認格式是由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