Я надеюсь, что кто-то может мне помочь в этом.
Я хочу добавить месяц к дате базы данных, но я хочу, чтобы в конце этих дней в конце этих дней не было двух скачков за месяц.
Например, у меня может быть:
31 января 2009
И я хочу получить
28 февраля 2009
а не
2 марта 2009
Следующая дата будет
28 марта 2009
28 июня 2009
и т.д..
Есть ли функция, которая уже выполняет такую операцию в Oracle?
EDIT
Yeap. Я хочу копировать каждый месяц все записи с некоторым статусом на следующий (чтобы пользователю не приходилось вводить снова 2000 строк каждый месяц)
Я могу получить все записи и обновить дату вручную (ну обязательно), но я бы предпочел, чтобы SQL выполнил эту работу.
Что-то вроде:
insert into the_table
select f1,f2,f3, f_date + 30 /* sort of ... :S */ from the_Table where date > ?
Но проблема наступает с последним днем.
Есть идеи, прежде чем мне придется что-то вроде этого кодировать?
for each record in
createObject( record )
object.date + date blabala
if( date > 29 and if februrary and the moon and the stars etc etc 9
end
update.... et
EDIT: 2
Добавить месяцы сделали свое дело.
теперь у меня просто так:
insert into my_table
select f1, add_months( f2, 1 ) from my_table where status = etc etc
Спасибо за помощь.