Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 将Crystal报表中的M/DD/YYY字符串转换为日期_String_Date_Crystal Reports - Fatal编程技术网

String 将Crystal报表中的M/DD/YYY字符串转换为日期

String 将Crystal报表中的M/DD/YYY字符串转换为日期,string,date,crystal-reports,String,Date,Crystal Reports,我需要将数据库中保存为字符串的提交日期字段转换为日期字段,以便按提交日期筛选报告。数据以MM/DD/YYYY格式保存,在一位数月份(即2015年1月1日)中不带前导零,有些记录中没有日期(要么为空,要么有空格)。我添加了前导零,并使用以下公式修复了空记录: local numbervar totalLength := 10; local numbervar dateLength := length({S85FLD.TEN_CUSTOM02}); WhileReading

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

    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:Remove"/"});

  cdate (ToNumber (Right ({@SubDate:Remove"/"}, 4)),
  ToNumber (Left ({@SubDate:Remove"/"}, 2)),
  ToNumber (Mid ({@SubDate:Remove"/"}, 3, 2)))
我检查了所有的语法,CR说没问题。但当我预览数据或将字段添加到过滤器时,我会得到“天数必须介于1和当月天数之间。”错误。当我查看原始字段时,所有中值都在它所在月份的日范围内。有什么建议吗

软件版本:SAP CR Developer 14

输出的
({@SubDate:Add“0”})与
的外观如何({@SubDate:Remove”/“})看起来您可以显示示例add“0”的输出为2015年2月1日(两位数月数不变)remove“/”的输出为01022015。
  EvaluateAfter ({@SubDate:Remove"/"});

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