我想在DB2中将日期列转换为格式化字符串。这个SQL运行得很好:
select varchar_format(current timestamp, 'YYYY-MM')
from sysibm.sysdummy1;但是下面的SQL给出了一个错误:
select varchar_format(current date, 'YYYY-MM')
from sysibm.sysdummy1;错误是:函数VARCHAR_FORMAT的SQL0171参数%1无效。
在第一个SQL中,第一个arg for VARCHAR_FORMAT是一个时间戳,这是有效的。在第二个SQL中,VARCHAR_FORMAT的第一个参数是日期,但这不起作用。
IBM文档暗示只有一个函数VARCHAR_FORMAT (及其同义词TO_CHAR)。
如何将日期(而不是时间戳)转换为字符串?或者,我是否必须先将日期转换为时间戳,然后再使用VARCHAR_FORMAT?
我运行的是i系列的DB2 7.1。
更新:转换到TIMESTAMP_ISO工作。但它很丑陋:
select varchar_format(timestamp_iso(current date), 'YYYY-MM')
from sysibm.sysdummy1;这个行得通。
发布于 2015-02-04 16:42:58
DB2 for I中的VARCHAR_FORMAT函数的文档只提到了时间戳值,而没有提到日期。有些DB2平台会在语句调用仅限时间戳的函数或将日期与时间戳进行比较时,将日期值隐式地转换为时间戳,但并非所有平台都这样做。
https://stackoverflow.com/questions/28302090
复制相似问题