2015-01-16 3 views
1

Я пишу оператор UPDATE для обновления таблицы. Столбец = последний день следующего месяца.Дата обновления до следующего месяца Oracle

Я пробовал что-то вроде этого, но, похоже, не работает.

Update MyTable SET MyColoumn = To_Date(((Month From Current_Timestamp) +1)'-31-2015' , 'MM-DD-YYYY'); 
+3

Это может работать, если вы использовали 'ЭКСТРАКТ (МЕСЯЦ ОТ CURRENT_TIMESTAMP)' Но @ решение JustinCave в ниже лучше, поскольку не может быть тридцать первый день следующего месяца (и в этом случае нет - февраль имеет только 28 дней), и это вызовет ошибку с 'TO_DATE()'. –

ответ

9
UPDATE myTable 
    SET myColumn = last_day(add_months(sysdate, 1)) 

должен работать. add_months добавляет 1 месяц к текущей дате. last_day дает вам последний день месяца.

1

Другой альтернативой было бы:

UPDATE mytable 
    SET mycolumn = TRUNC(ADD_MONTHS(SYSDATE, 2), 'MONTH') - 1; 
Смежные вопросы