Bakground: У меня есть устаревшее приложение, над которым я работаю, который использует типы DATE для большей части времени хранения в базе данных. Я хотел бы попробовать обновить некоторые из этих таблиц, чтобы они могли использовать часовые пояса, поскольку это создает проблемы с пользователями в разных областях, где находится db (см. Ниже). Это для Oracle 10g.
Quetions:
1) Могу ли я перенести это "на место". То есть я могу так конвертировать
DATE_COL = type:DATE => DATE_COL = type:TIMESTAMP
... или мне нужно будет использовать другое имя столбца?
Имейте в виду, что данные необходимо сохранить. Если это можно сделать полу-легко в миграции script, это будет работать для моих целей.
2) Будет ли этот тип преобразования обратно совместим? Вероятно, у нас есть некоторые сценарии или отчеты, которые попадут в эту таблицу, о которых мы, возможно, и не знаем. Возможно, мы справимся с этим, но я хотел бы знать, в какое гнездо шершней я иду.
3) Какие подводные камни я должен искать?
Спасибо,
EDIT:
(частично в ответ на Гэри)
Я в порядке с многоступенчатым процессом.
1) переместите данные в новый столбец Timestamp (caled TEMP) с каким-то преобразованием 2) отбросить старый столбец (назовем его MY_DATE) 3) создайте новый столбец временной отметки со старым именем столбца даты (MY_DATE) 4) переместите данные в столбец MY_DATE 5) падение столбца TEMP
Гари также хотел получить разъяснения по конкретному вопросу о часовом поясе. Я скопировал свой ответ снизу, чтобы сделать его более читаемым.
В основном данные будут доступны из нескольких разных областей. Мы должны иметь возможность конвертировать в/из локального часового пояса по мере необходимости. У нас также есть триггеры, которые используют sysdate, еще более усложняющие ситуацию. временная отметка с часовым поясом облегчает большую часть этой боли.
О, спасибо за ответы до сих пор.