2014-10-03 211 views
1

我在格式得到一個日期作爲字符串從見下表:格式化日期YYYYMM格式在DB2

2014-09-02 

這是YYYYMM-DD格式。

查詢是:

SELECT VALUE FROM MYSCHEMA.MYTABLE WHERE CODE = 'MYDATE' 

我想修改上面的查詢,這樣的結果是:

201402 

我想這一點,但在正確的格式沒有得到:

select char(year(date(value))) || char(month(date(value))) from MYSCHEMA.MYTABLE WHERE CODE = 'MYDATE' 

結果如下:

1    
------------ 
2014  9 

我有我的db2 9.5。

+0

如果它已經是一個字符串,爲什麼要把它轉換爲'DATE',如果你只能使用'SUBSTR()'?無論如何,嘗試在'CHAR()'調用周圍添加'TRIM()'。 – mustaccio 2014-10-03 16:35:38

+0

你所得到的價值似乎代表2014年9月2日。你說你想要的那個似乎代表2014年2月。你確定嗎? – 2014-10-03 16:37:12

+0

您還沒有選擇答案,您是否找到解決方案? – davejal 2016-01-14 15:55:52

回答

5

如果你實際上得到一個DATE數據類型(即使你不是在你那裏的ISO格式,DB2應該是足夠聰明,它會自動轉換),那麼你可以使用VARCHAR_FORMAT標量函數:

SELECT VARCHAR_FORMAT(VALUE, 'YYYYMM') 
FROM MYSCHEMA.MYTABLE 
WHERE CODE = 'MYDATE' 
0

如果您的所有字符串都將是在完全一樣的格式,爲什麼不直接刪除與替換破折號(),然後搶子,像這樣:

SELECT SUBSTR(REPLACE(VALUE,'-',''),1,6) FROM MYSCHEMA.MYTABLE WHERE CODE='MY DATE' 

而且,丹說,在你的例子中,你只選擇年和日,但我從你的代碼中假設你想要年和月。