Преобразовать строку длиной 8 в * EUR дату для сравнения - PullRequest
0 голосов
/ 22 ноября 2018

Я хочу преобразовать строку длины 8 в тип даты для сравнения.Строка отформатирована как DDMMYYYY (* EUR).

У него нет периодов для отделения дней от месяцев и месяцев от лет.Если я введу значение типа «01012018» в BIF% даты, компилятор скажет мне, что выражение слишком короткое для формата * EUR:

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

Мой предыдущий способ сравнения с двумя датами состоял в том, чтобы взятьоба из них, сохраняют их в структурах данных, переупорядочивают дату с подполями и берут полученную, переупорядоченную дату из наложенного подполя.

У кого-нибудь есть идея, как преобразовать строку 8A в тип DATE в RPGLE?

1 Ответ

0 голосов
/ 22 ноября 2018

Указанный вами формат будет зависеть от того, сохраните ли вы разделители даты.Если ваша дата в 10-байтовом символьном поле обозначена как ДД-ММ-ГГГГ (с тире), это снова формат EUR:

      %date(alpha_date : *eur)

Если вам не нужны стандартные разделители с вашей датой (DDMMYYYY (8-байтовое поле) просто добавьте ноль (0) в конец имени формата:

      %date(alpha_date : *eur0)
...