Можем ли мы сравнить временные поля в виде карты JCL

StackOverflow https://stackoverflow.com/questions/3820827

  •  26-09-2019
  •  | 
  •  

Вопрос

Предположим, у меня есть 12 позиций рекордного времени удержания поля 8 байтов. Можете ли я сравнить его с текущим временем? Могу ли я сделать арифметические операции на том, что он подал, как добавление часа или вычитания нескольких минут и т. Д. Ваши ответы будут высоко оценены. Спасибо!

Приложение. Для лучшего понимания:

Мне нужна ваша помощь в получении полей времени по сравнению во время записи записей с вывода. Например, у меня 12-я позиция файла HLoding Timestamp от 8BYTES. Я хочу написать, чтобы выводиться, когда Timestamp от записи меньше или равен текучему временному времени на час. В процессе достижения этого я застрял внизу:

INCLUDE COND=(12,8,??,GE,&TIME1-1),

Что может быть представление данных (в месте ?? за это.)

До всего времени мы можем достичь этого, используя сортировку? Если это так, пожалуйста, обратитесь в сортировку Gimme (изменить мою карту, если это возможно, в противном случае дай мне вашу версию). А также пожалуйста, поделитесь материалом / REPO во временных сопоставлений и лучшей обработке. Спасибо заранее за помощью.

С уважением, Раджа.

Это было полезно?

Решение

Я думаю, что посмотреть, что вы пытаетесь сделать, но есть сомнения относительно того, будет ли она работать. Это мои мысли:

  • Я только когда-либо видел & Time1 (c) Строка символов, используемая для вывода. Например: Automec Build (1,11,12, & Time1 (:))Поместите текущее время в HH: MM: SS формат в выходной записи, начиная с позиции 12. Насколько мне известно, ВРЕМЯ не может быть использован в Icetool / dfsort Преступность Заявление, как вы указали на вашем вопросе.
  • Даже если ВРЕМЯ были поддержаны внутри Преступность Заявления, операторы +/- не поддерживаются, как вы могли видеть с ДАТА (например. Дата1 + 1. Чтобы получить текущую дату плюс 1 день). Добавив некоторую константу к ВРЕМЯне поддерживается.
  • Вы дали какое-либо внимание к тому, что произойдет, если ваша работа должна была пройти несколько минут до полуночи? Добавление часа до времени вызывает рулон к утру на следующий день. В этот момент вам нужно принять дату в проводимость в условиях.

Что-то, что может работать: добавьте предварительный шаг для запуска REXX, или некоторые другие PrGram. Пусть эта программа генерирует все или частьВКЛЮЧАТЬ Заявления, используемые в последующем этапе ICETOOL. Вот пример процедуры Rexx, которая создаст ВКЛЮЧАТЬ Заявление, похожее на то, что дано в вашем вопросе. Запись записывается в файл, выделенный DD CNTLREC:

 /* REXX */
 PULL DELTA  /* Number of hours to add to current time */
 PARSE VALUE TIME('N') WITH HH ':' MM ':' SS /* current time */
 HH = LEFT((HH + DELTA) // 24, 2, '0')  /* add DELTA, check rollover */
 QUEUE " INCLUDE COND=(12,8,CH,GE,C'"HH":"MM":"SS"'),"
 EXECIO * DISKR CNTLREC(FINIS
 EXIT

Назначьте этот файл в соответствующие оператор управления ICETOOL DD, и он должен работать для вас.

Предупреждение: Этот пример не имеет отношения к коррективациям, которые могут потребоваться для параметров COND в случае полуночи ролоса.

Примечание: Если вы храните приведенную выше процедуру REXX в PDS AS: «My.rexx (Foo)», ваш предварительный шаг JCL будет выглядеть что-то вроде:

//RUNREXX   EXEC PGM=IKJEFT01           
//SYSEXEC  DD DSN=MY.REXX,DISP=SHR  
//SYSTSPRT DD SYSOUT=A                  
//SYSTSIN  DD *                         
%FOO
1                               
/*                                      
//

«1», следующий% Foo - это дельта-номер часов, на который ссылаются в процедуре.

Другие советы

Если вы DFSORT довольно актуальны, октябрь 2010 года, дата5 будет иметь эквивалентность даты4, но в том числе микросекунды, так как DB2 «Timestamp».

 OPTION COPY
 INREC OVERLAY=(1:DATE5)

дает

2013-04-08-19.29.41.261377
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top