2016-10-26 94 views
0

在DB2 SQL查詢中,我返回兩個整數:年和月。由此,我需要構造一個格式爲dd/mm/yyyy的字符串。日期必須代表下個月的第一天。將iSeries日期設置爲字符串後將其轉換爲字符串

因此,例如 年= 2016年,月= 9會導致字符串「2016年1月10日」

目前我用下面的(我繼承)在做到這一點:

substring(cast(DATE(INSERT(INSERT(LEFT(CHAR((Year * 10000) + (Month * 100) + 1),8),5,0,''-''),8,0,''-'')) + 1 month as char(10)),9,2)|| ''/'' || 
substring(cast(DATE(INSERT(INSERT(LEFT(CHAR((Year * 10000) + (Month * 100) + 1),8),5,0,''-''),8,0,''-'')) + 1 month as char(10)),6,2)|| ''/''|| 
substring(cast(DATE(INSERT(INSERT(LEFT(CHAR((Year * 10000) + (Month * 100) + 1),8),5,0,''-''),8,0,''-'')) + 1 month as char(10)),1,4) as UPDATEDATE 

但它似乎很可怕。有沒有更好的方法來實現這個結果?

感謝

羅恩文

回答

1

試試這個

select VARCHAR_FORMAT(TIMESTAMP_FORMAT(cast(year*10000+month*100+1 as char(8)), 'YYYYMMDD') + 1 month, 'DD/MM/YYYY') as mydate           
from yourtable