在Crystal Report中将M / DD / YYY字符串转换为日期

时间:2016-03-15 17:30:50

标签: string date crystal-reports

我需要将保存为数据库字符串的提交日期字段转换为日期字段,以便按提交日期过滤报告。数据以MM / DD / YYYY格式保存,单个数字月份没有前导零(即Jan的1/1/2015),有些记录中没有日期(要么是空白,要么是空格) 。我添加了前导零并使用以下公式修复了空记录:

    local numbervar totalLength := 10;
    local numbervar dateLength := length({S85FLD.TEN_CUSTOM02});

    WhileReadingRecords;

    if totalLength=0 or isnull({S85FLD.TEN_CUSTOM02}) or {S85FLD.TEN_CUSTOM02}=" "
    then "01/01/2000" Else
    if dateLength < totalLength
    then "0"+{S85FLD.TEN_CUSTOM02}
    else {S85FLD.TEN_CUSTOM02}

然后我用“

删除了”/“
    EvaluateAfter ({@SubDate:Add"0"});

    Replace({@SubDate:Add"0"},"/","")

现在我正在尝试将字符串转换为日期:

  EvaluateAfter ({@SubDate:Remove"/"});

  cdate (ToNumber (Right ({@SubDate:Remove"/"}, 4)),
  ToNumber (Left ({@SubDate:Remove"/"}, 2)),
  ToNumber (Mid ({@SubDate:Remove"/"}, 3, 2)))

我检查了所有语法,CR说没关系。但是当我去预览数据或将字段添加到过滤器时,我得到“一天的数字必须介于1和本月的天数之间。”错误。当我查看原始字段时,所有MID值都在其所在月份的日期范围内。有任何建议吗?

软件版本:SAP CR Developer 14

0 个答案:

没有答案