问题可能是IBM I DB2 Query SQL

时间:2014-04-27 22:38:37

标签: sql ibm-midrange db2-400

I have an expression in Crystal Reports which is not working:

1. {OEINH1.IHDOCD}  = ToText(CurrentDate - 1, 'yyyyMMdd')

This field IHDOCD is defined as number on IBM i.

 IHDOCD     PACKED       8  0       5        49        Both     WWDOCD    
   Field text  . . . . . . . . . . . . . . . :  DOCUMENT DATE             
   Referenced information                                                 
     Referenced file . . . . . . . . . . . . :  ISIXREF                   
       Library . . . . . . . . . . . . . . . :  STOBJR82A                 
     Referenced record format  . . . . . . . :  RISIXRF                   
     Referenced field  . . . . . . . . . . . :  WWDOCD                    
     Attributes changed  . . . . . . . . . . :  None                      


But CR gives this error message: 'A number is required here'

我正在创建一个简单的记录选择"     也许根据ibm I db2编码需要一个公式?

In SQL Server, the SQL Expression formula would be: 

replace(convert(varchar, "DATE_FIELD", 111), '/','')

1 个答案:

答案 0 :(得分:3)

在不知道Crystal Reports的情况下,问题可能就是您正在使用的功能。如果要转换值ToText,则amswer将被视为字符串,即使内容恰好是数字字符。

您使用T-SQL表达式在正确的机架上。

要获取可在记录选择子句中使用的数字结果,请尝试以下操作:

    dec( replace(char(current_date - 1 day),'-','') ,8,0)