2015-06-24 4 views
1

Я новичок в Peoplesoft и просто пытаюсь установить текущее поле даты в предыдущее воскресенье, и для этого я использовал функцию «weekday», но это возвращает целое число стоимость. Как преобразовать возвращаемое целочисленное значение в дату? Может ли кто-нибудь помочь мне решить эту проблему? Спасибо заранее.как установить текущее поле даты в предыдущее воскресенье в peopleoft

ответ

1

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

AddToDate(date, num_years, num_months, num_days) 

будет возвращать дату

пример

AddToDate(Date(),0,0,-3), предполагая, что воскресенье было 3 дня до сегодня

+1

Ну, данная функция работает I f это 3 дня от воскресенья, но я хочу, чтобы дата была в предыдущее воскресенье каждый день, когда я открываю страницу. – sairam

+1

Замените -3 на будний день (дата()) * -1, если я не ошибаюсь в воскресенье, день недели равен нулю, im не в офисе прямо сейчас, поэтому я не могу подтвердить –

1

Предполагая, что вы хотите последнее воскресенье, так, например, сегодня 30/06/2015, тогда предыдущее воскресенье - 28/06/20 15.

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

Local date &dt = %Date;

Local number &num = Weekday(&dt); 
WinMessage(Date(&dt - (&num - 1)), 0); 

функция Будний возвращает числовое значение от 1 (воскресенье) до 7 (суббота). Итак, если вы знаете сегодняшнюю дату (% date), то получите от нее будний день.

Если вы хотите получить другую дату, отличную от текущей даты, используйте DateValue (date_str) , где date_srt - это строковое значение даты, которую вы хотите.

еще один способ сделать это

SQLExec(select To_date(:1,'DD/MM/YYYY') - (To_Char(To_date(:1,'DD/MM/YYYY'), 'D') -1) from dual, &dtValue, &dtSunday); 

заменителя & dtValue дату вы хотите

визита http://peoplesoftdotnet.blogspot.com.au/ для более советов

-1

Вот код:

% Дата используется для извлечения SYSDATE.
Я добавил несколько комментариев, чтобы подтвердить результат.

/* Code Begins Here */ 

Local date &dtSunday; 

Local integer &i; 

MessageBox(0, "", 0, 0, "SYSDATE - " | %Date); 

MessageBox(0, "", 0, 0, "Previous Sunday - 28-June-2015"); 

&i = Weekday(%Date); 

&dtSunday = AddToDate(%Date, 0, 0, - (&i - 1)); 

MessageBox(0, "", 0, 0, "Computed Sunday - " | &dtSunday); 

/* Code Ends Here */ 

Вот результат:

SYSDATE - 2015-07-02 (0,0)

Предыдущее воскресенье - 28-июня-2015 (0,0)

компьютерной воскресенье - 2015-06-28 (0,0)

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

  • Нет связанных вопросов^_^