将长度为8的字符串转换为* EUR日期以进行比较

时间:2018-11-22 09:25:22

标签: datetime ibm-midrange datetime-format rpgle

我想将长度为8的字符串转换为日期类型以进行比较。字符串格式为DDMMYYYY(* EUR)。

它没有用于将日期与月份和年份与月份分开的句点。如果我在%date BIF中输入“ 01012018”之类的值,则编译器会告诉我该表达式对于* EUR:格式而言太短了。

 D dateEUR         s               d   datfmt(*EUR)
 C                   eval      dateEUR = %date('01012018':*EUR)

我以前比较两个日期的方式是将两个日期都保存起来,将它们存储在数据结构中,使用子字段对日期进行重新排序,然后从覆盖子字段中获取重新排序的结果。

有人知道如何在RPGLE中将8A字符串转换为DATE类型吗?

1 个答案:

答案 0 :(得分:4)

您指定的格式取决于您是否存储日期分隔符。如果您的日期位于DD-MM-YYYY(带破折号)的10字节字符字段中,则该格式也是EUR格式:

      %date(alpha_date : *eur)

如果您不需要带日期的标准分隔符(在8字节字符字段中为DDMMYYYY),只需在格式名称的末尾附加数字零(0):

      %date(alpha_date : *eur0)