代码之家  ›  专栏  ›  技术社区  ›  Radinator

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

  •  0
  • Radinator  · 技术社区  · 6 年前

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

    它没有将日与月、月与年分开的期限。如果我在%日期输入一个像'01012018'这样的值,编译器会告诉我表达式对于格式*eur来说太短:

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

    我以前比较两个日期的方法是同时取两个日期,将它们存储在数据结构中,用子字段重新排序日期,并从重叠的子字段中获取结果,重新排序的日期。

    有人知道如何将8A字符串转换为rpgle中的日期类型吗?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Nifriz    6 年前

    您指定的格式将取决于是否存储日期分隔符。如果您的日期以dd-mm-yyyy(带破折号)的形式出现在10字节字符字段中,这也是欧元格式:

          %date(alpha_date : *eur)
    

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

          %date(alpha_date : *eur0)