2012-01-26 2 views
3

Поэтому мне нужно установить переменную DATE, равную дате завтрашнего дня, и мне нужно установить время до 12:00 AM (статическое). У меня есть следующий код, который работает, но я думаю, что есть более чистый способ, который мне не хватает.Установить дату = завтра в статичное время в Oracle PLSQL?


end_date:= to_date((EXTRACT(MONTH FROM sysdate+1))||'/'|| 
        (EXTRACT(DAY FROM sysdate+1))||'/'|| 
        (EXTRACT(YEAR FROM sysdate+1))|| 
        ' 12:00 AM', 'MM/DD/YYYY HH:MI PM'); 

Так что получает работу, но есть более простой способ для меня, чтобы установить переменное датой_окончание?

Спасибо

ответ

13

Как насчет:

end_date:=trunc(sysdate+1); 

?

+0

Я знал, что мне не хватает чего-то легкого, спасибо за ответ. Я в конечном итоге использую 'select trunc (sysdate +1) + 1/86400 from dual' –

+1

Обратите внимание, что' trunc (sysdate +1) + 1/86400' составляет 12.00.01AM, а не 12.00AM, как вы сказали в вопрос. –

+3

Для ясности я бы рекомендовал использовать арифметику INTERVAL; таким образом 'end_date: = trunc (sysdate) + interval '1' day + interval '1' second'. Мне это гораздо легче интерпретировать. YMMV. –

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