2010-10-28 166 views
3

舉例來說,如果我有一個值的數據庫有一個字段:2010-10-20-12.00.00.000000如何在db2中將時間戳轉換爲ISO格式的日期?

我怎樣才能得到一個包含20101020數字。

所以我可以做這樣的事情:

SELECT * FROM file WHERE DATE(timestamp) BETWEEN 20101020 AND 20101031 

似乎不是工作,雖然。 DATE()不以ISO格式返回。

回答

3

我一直以爲ISO格式的日期是yyyy-mm-dd。那是一個我們從DB2獲得與表達:

char (date_column,iso) 

但我不認爲它需要你的情況,你應該能夠做到這一點的:

SELECT * FROM file where date(timestamp) between 20101020 and 20101031 

到:

select * 
    from file 
    where timestamp >= '2010-10-20-00:00:00.000000' 
     and timestamp <= '2010-10-31-00:00:00.000000' 

由於您沒有對數據庫中的每一行進行計算(如果數據庫管理系統不夠智能以改變您的查詢),這可能會運行得更快。

換句話說,唯一的計算是在查詢運行之前,這些文本字段被轉換爲時間戳。

+0

謝謝你就是我需要的 – wkm 2010-10-28 22:35:03

相關問題