Как получить результат выгрузки в упакованном десятичном формате, если столбец таблицы находится в целочисленном формате в таблице DB2?
Вопрос
У меня есть один запрос, объясненный ниже ....,
1.My DB2 table column is in INTEGER format (it has the date value in Julian date format - YYYYDDD)
2. After unload this date into a flat file, the result is in hexa decimal format.(4 bytes occupaid)
3. I have a requirement to compare this date with (Current Julian date+7days) and write the corresponding recods into a File.
4. So, when I am comparing the Hexa decimal Input date with Current Julian date+7days (DATE3P+7), I am getting MAxcc=0 but I am not getting required output.
5. What I identified the problem is that the input date should also be in packed decimal format.
Может ли кто -нибудь, пожалуйста, дайте мне знать, как преобразовать табличное значение в упакованном десятичном виде во время разгрузки или предложите альтернативный способ получить его.
Пример:- 1. разгрузить Джулиан Дейт (yyyyddd) [После разгрузки это будет в десятичном формате Hexa]. 2. Сравните с текущей датой Джулиана +7 дней. Sort Fields = Copy Outfil files = 1, include = (1,4, PD, LT, Date3p+7) Outfil files = 2, Save Save
Заранее спасибо, Раджасекхар Джанну.
Решение
Поверьте, эти альтернативные способы, работа ...
Вместо того, чтобы получить дату в шестнадцатеричном типе, разгрузите его как дату в формате Yyyyddd, и Date3 даст вам дату Джулиана в Yyyyyddd. Теперь они оба находятся в совместимом формате для сравнения и состояния.
Существует много скалярных функций DB2, чтобы обеспечить дату Джулиана, а также дата в цифрах. Полагаю
DIGITS
наJULIAN
Скалярная функция будет делать ...См. Это DB2 скалярные функции
- Если бы вы не могли разгрузить таблицу, как описано выше, другой способ - манипулировать файлом Unload, так что дата из шестнадцатеричного формата должна быть преобразована в числовое формат yyyyyddd с использованием DFSORT. Тогда Date3 поможет вам получить неделю данных. Ссылка на DFSORT уже поделилась.