0

出于报告目的,我想将我的date(digits(mydate7))字段检索为mm/yyyy.

我已经尝试过month(date(digits(mydate7)) + '/' + year (date(digits(mydate7)) as mmyyyy,但得到null了结果。我可以month(date(digits(mydate7))单独测试和年份函数并获得一组返回数据,但不能在字段中组合。

4

3 回答 3

3

DB2/400 使用双竖线字符进行连接:

RTRIM(CHAR(MONTH(DATE(DIGITS(mydate7))))) || '/' || RTRIM(CHAR(YEAR(DATE(DIGITS(mydate7)))))

假设mydate7是格式yyyyddd,您可以将其简化为:

RTRIM(CHAR(MONTH(DATE(DIGITS(mydate7))))) || '/' || SUBSTR(DIGITS(mydate7),1,4)

通过隐式转换进一步简化:

RTRIM(MONTH(DIGITS(mydate7))) || '/' || RTRIM(mydate7/1000)

有关详细信息,请参阅连接运算符

于 2012-07-10T19:18:37.487 回答
1

看起来 CONCAT是字符串连接函数,而不是+. 它可能试图添加一个带有字符串和呕吐的数字。

试试CONCAT(CONCAT(month(date(digits(mydate7)),'/'), year(date(digits(mydate7)))

于 2012-07-10T19:07:57.730 回答
0

通常我喜欢这样

substr(char(mydate7,ISO),6,2) || '/' || substr(char(mydate7,ISO),1,4)
于 2012-07-11T03:22:53.317 回答