在DB2中以YYYYMM格式格式化日期

时间:2014-10-03 16:20:54

标签: sql db2

我从下表中以格式:

获取日期作为字符串
2014-09-02 

是YYYY-MM-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和我一起。

2 个答案:

答案 0 :(得分:7)

如果你实际上获得DATE数据类型(即使你不是,你也有ISO格式,那么DB2应该足够聪明,可以自动转换它),然后你可以使用VARCHAR_FORMAT标量函数:

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

答案 1 :(得分:0)

如果你的所有字符串都采用完全相同的格式,为什么不用删除带有REPLACE()的破折号,然后抓取一个子字符串,如下所示:

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

另外,正如Dan所说,在您的示例中,您只选择了年份和日期,但我从您的代码中假设您想要年份和月份。