将长度为 8 的字符串转换为 *EUR 日期以进行比较
Convert string of length 8 to *EUR date for comparing
我想把一个长度为8的字符串转换成日期类型来比较。该字符串的格式为 DDMMYYYY (*EUR)。
它没有分隔日期和月份以及月份和年份的句点。如果我向 %date BIF 输入类似“01012018”的值,编译器会告诉我表达式对于格式 *EUR:
来说太短了
D dateEUR s d datfmt(*EUR)
C eval dateEUR = %date('01012018':*EUR)
我以前比较两个日期的方法是获取两个日期,将它们存储在数据结构中,用子字段重新排序日期,然后从重叠的子字段中获取重新排序的结果日期。
有人知道如何在 RPGLE 中将 8A 字符串转换为 DATE 类型吗?
您指定的格式将取决于您是否存储日期分隔符。如果您的日期在一个 10 字节的字符字段中,如 DD-MM-YYYY(带破折号),这又是 EUR 格式:
%date(alpha_date : *eur)
如果您的日期不需要标准分隔符(8 字节字符字段中的 DDMMYYYY),只需将数字零 (0) 附加到格式名称的末尾即可:
%date(alpha_date : *eur0)
我想把一个长度为8的字符串转换成日期类型来比较。该字符串的格式为 DDMMYYYY (*EUR)。
它没有分隔日期和月份以及月份和年份的句点。如果我向 %date BIF 输入类似“01012018”的值,编译器会告诉我表达式对于格式 *EUR:
来说太短了 D dateEUR s d datfmt(*EUR)
C eval dateEUR = %date('01012018':*EUR)
我以前比较两个日期的方法是获取两个日期,将它们存储在数据结构中,用子字段重新排序日期,然后从重叠的子字段中获取重新排序的结果日期。
有人知道如何在 RPGLE 中将 8A 字符串转换为 DATE 类型吗?
您指定的格式将取决于您是否存储日期分隔符。如果您的日期在一个 10 字节的字符字段中,如 DD-MM-YYYY(带破折号),这又是 EUR 格式:
%date(alpha_date : *eur)
如果您的日期不需要标准分隔符(8 字节字符字段中的 DDMMYYYY),只需将数字零 (0) 附加到格式名称的末尾即可:
%date(alpha_date : *eur0)