Столбцы Migrating Oracle DATE для ДОБАВЛЕНИЯ МЕТКИ ВРЕМЕНИ с часовым поясом

Мне 23 года, и emacs преподавался в нашем курсе Операционных систем как "C редактор, которого необходимо использовать". Я использовал его для курса, но шел дальше к другим IDE, которые лучше удовлетворяют моему рабочему процессу и повседневной среде разработки.

Редактирование , поскольку мое исходное сообщение было не в целом полезно.

я использовал emacs через терминал команды в PuTTY, и это - моя степень использования его. Я не возражал против него как редактор и стал достаточно хорошим с ярлыками, чтобы быть довольно продуктивным. Я действительно больше не исследовал emacs редактора, чем что, потому что я уже использовал затмение и действительно любил его.

Теперь, я повседневно использую затмение, потому что это - расширяемый язык, который я должен разработать с Java, ActionScript, JavaScript, PHP, CSS, HTML и даже Схемой. У меня также есть пользовательское расширение затмения, что я - совершенствование, которое помогает мне быть более продуктивным в моей полностью занятой нише (разработка WordPress). Eclipse обеспечивает FTP и сервисы SSH, и я был знаком с интерфейсом для дольше, чем какой-либо другой IDE, и именно поэтому я использую его.

12
задан Jason Tholstrup 3 November 2009 в 04:12
поделиться

2 ответа

Вы можете просто запустить:

ALTER TABLE your_table MODIFY your_date_column TIMESTAMP WITH TIME ZONE;

Но я бы порекомендовал добавить столбец TIMESTAMP в таблицу, используя оператор UPDATE для заполнения, и опустить столбец исходной даты, если вы выберете:

ALTER TABLE your_table ADD date_as_timestamp TIMESTAMP WITH TIME ZONE;

UPDATE your_table
   SET date_as_timestamp = CAST(date_column AS TIMESTAMP WITH TIME ZONE);

Преобразование обратно совместимо - вы можете переключаться вперед и назад по своему усмотрению.

17
ответ дан 2 December 2019 в 06:45
поделиться

Достаточно просто, чтобы продемонстрировать

SQL>  create table x (y date);
Table created.
SQL> insert into x select sysdate from dual;
1 row created.
SQL> commit;
Commit complete.
SQL> alter table x modify y timestamp;
Table altered.
SQL> select * from x;

Y
---------------------------------------------------------------------------
03/NOV/09 12:49:03.000000 PM
SQL> alter table x modify y date;
Table altered.
SQL> select * from x;
Y
---------
03/NOV/09
SQL> alter table x modify y timestamp with time zone;
alter table x modify y timestamp with time zone
ERROR at line 1:
ORA-01439: column to be modified must be empty to change datatype
SQL> alter table x modify y timestamp with local time zone;
Table altered.
SQL> alter table x modify y date;
Table altered.

Таким образом, вы можете перейти от даты к отметке времени (или отметке времени с местным часовым поясом) и обратно, но не для отметки времени с часовым поясом (т.е. где смещение сохраняется ). Вам нужно будет добавить еще один столбец и скопировать существующие данные (со значением по умолчанию для соответствующего часового пояса).

«вызывает проблемы с пользователями в разных областях, а не там, где находится база данных». Может помочь быть более конкретным. Достаточно ли преобразовать даты (или метки времени) из часового пояса базы данных в часовой пояс пользователя при вставке / изменении / запросе, или вам действительно нужно сохранить тот факт, что запись была создана в 15:00 в определенном часовом поясе.

6
ответ дан 2 December 2019 в 06:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: