2010-10-28 2 views
1

Я пытаюсь преобразовать текущую дату - 2 месяца в формат yyyymmdd и вычесть 1900000 из него.преобразование даты в char в AS400

Oracle было легко для меня

SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-2),'YYYYMMDD') - 19000000 FROM DUAL 

Может кто-нибудь предложить мне то же самое для AS400.

Заранее спасибо.

ответ

-1
EVAL numericField = %dec(%date(alphaDate:*MDY/):*MDY) 

Параметр, следующий за полем char, должен быть форматом поля char (я использовал * MDY с «/» для примера).

Перм в конце выражения должен быть форматом числового поля. Итак, этот пример преобразует 11/22/2008 в 11222008.

Если вы хотите, чтобы 2008-11-22 преобразован в 20081122, сделайте оба набора * ISO.

+0

спасибо, но дайте мне в формате чего-то вроде оракула, который выбирает DEC (DATE ((CURRENT_DATE -2 MONTHS), ISO) FROM SYSIBM.SYSDUMMY1. Я должен преобразовать до yyyy-mm-dd, но после этого iam не в состоянии. Можете ли вы, пожалуйста, руководствоваться. Спасибо за ваше время и помощь – kdev

0

SELECT DEC (SUBSTR (CHAR (DATE (NOW()) - 2 МЕСЯЦА), ISO), 1, 4) || SUBSTR (CHAR (DATE (NOW()) - 2 МЕСЯЦА), ISO), 6, 2) || SUBSTR (CHAR (ДАТА (NOW()) - 2 месяца), ISO), 9, 2), 8, 0) - 19000000 ОТ ДВОЙНОГО

2

Это должно сделать трюк:

select char(((year(d)-1900) * 100 + month(d)) * 100 + day(d))  
from (select (curdate() - 2 months) as d from sysibm/sysdummy1) s 

или, если вы предпочитаете, чтобы сделать то же самое без вложенности выберите:

select char(((year(curdate() - 2 months) - 1900) * 100 
     + month(curdate() - 2 months)) * 100 
     + day(curdate() - 2 months)) 
from sysibm/sysdummy1 

Приветствиях

0

Это Литт поздно ответ, но должен делать трюк :)

select char((year(curdate() - 2 months) * 100   
    + month(curdate() - 2 months)) * 100   
    + day(curdate() - 2 months))     
from sysibm/sysdummy1         

Это почти так же, как ответ karol.mlot, однако, вы будете получать правильный формат, так как вы просили ГГГГММДД

1

Простейшее может быть:

SELECT DEC(REPLACE(CHAR(CURDATE() - 2 MONTHS,ISO),'-',''))-19000000 FROM SYSIBM/SYSDUMMY1 

Некоторые мысли могли бы рыть что-то лучше. но это не будет намного проще, несмотря ни на что.

Смежные вопросы