Можем ли мы сравнить временные поля в виде карты JCL
Вопрос
Предположим, у меня есть 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