вычесть две даты с помощью sql loader - PullRequest
0 голосов
/ 25 октября 2018

У меня есть две даты.Один из них - cur_phy_date , а следующий - Last_Phy_Date .Но проблема здесь в том, что плоский файл имеет только одну дату, т.е. cur_phy_date , но для вычисления Last_Phy_Date Мне нужно вычесть 6 месяцев из cur_phy_date в управляющем файле SQL LOADER.Мои примеры форматов даты для cur_phy_date : 2018MAY01.

Можно ли вычесть 4 или 5 месяцев из cur_phy_date и получить Last_Phy_Date в том же формате, что и cur_phy_date

1 Ответ

0 голосов
/ 25 октября 2018

Надеюсь, у вас есть возможность сделать ваши столбцы правильным типом данных DATE.Если нет, то мы все должны работать с плохим дизайном в тот или иной момент.В любом случае вам необходимо преобразовать текущую дату в правильную дату, указав на нее предшествующий символ двоеточия, вычтите 6 месяцев, а затем преобразуйте в нужный формат.Вот как должна выглядеть запись вашего контрольного файла:

На правильную дату:

Last_Phy_Date  date "MM/DD/YYYY" "TO_CHAR(ADD_MONTHS(TO_DATE(:cur_phy_date , 'YYYYMONDD'),-6), 'MM/DD/YYYY')",

На VARCHAR2:

Last_Phy_Date  CHAR "TO_CHAR(ADD_MONTHS(TO_DATE(:cur_phy_date , 'YYYYMONDD'),-6), 'YYYYMONDD')", 
...