Как получить последний день текущего месяца в DataStage?

Я изучил все функции, доступные в преобразователе, но не смог найти точную функцию для получения последнего дня текущего месяца путем передачи даты в том же формате по умолчанию, то есть гггг-мм-дд. Пожалуйста, помогите мне в этом отношении.


person Naveen Reddy CH    schedule 12.09.2013    source источник
comment
Привет. чтобы получить последний день месяца, вы должны использовать функцию DaysInMonth. вот пример: Date = inputlink.dateVar Year = YearFromDate(Date) Month = MonthFromDate(Date) Day = DaysInMonth(Date) EndOfMonth = DateFromComponents(Year,Month,Day)   -  person funk    schedule 12.09.2013
comment
Помогла ли вам эта информация решить эту проблему?   -  person funk    schedule 13.09.2013
comment
Но DaysInMonth() недоступен в версии 8.1, я использую версию DataStage 8.1. @фанк   -  person Naveen Reddy CH    schedule 03.01.2014
comment
Привет. Это должно работать: Field(31|28|31|30|31|30|31|31|30|31|30|31, |, MonthFromDate(InLink.dateVar))   -  person funk    schedule 06.01.2014
comment
Хм.. есть что-н. отсутствует в коде => обрабатывать високосный год (февраль: 28 или 29)   -  person funk    schedule 06.01.2014


Ответы (3)


Поле("31|28|31|30|31|30|31|31|30|31|30|31", "|", MonthFromDate(InLink.dateVar))

person funk    schedule 12.09.2013

Более точно установить первый день следующего месяца, чем использовать функцию DateFromDaysSince, чтобы установить предыдущий день. Я создал переменную этапа integer (6), которая содержала век и месяц + 1 из исходной ссылки, например. 201410

DateFromDaysSince(-1, StringToDate(svIHBKPR, "%гггг%мм") : "%гггг-%мм-%дд")

person battaliou    schedule 08.10.2014

Существует функция преобразования под названием DaysInMonth. Пример: DaysInMonth("2017-01-23")= 31

person Dr Software    schedule 23.01.2017