Страницы

Поиск по вопросам

воскресенье, 1 марта 2020 г.

Как добавить столбец вида TIMESTAMP заданного формата

#sql #oracle


Как в таблицу ORDERS добавить столбец ORDERDATE с заданным форматированием?
Либо как сменить формат у уже существуещего столбца? 

alter TABLE ORDERS ADD ORDERDATE TIMESTAMP 'YYYY-MM-DD HH24:MI:SS'

    


Ответы

Ответ 1



Oracle хранит данные в БД в бинарном виде, поэтому когда речь заходит о форматировании DATE/TIMESTAMP подразумевается ввод и вывод - т.е. как показывать данные при выводе (SELECT) и как их парсить при вводе (INSERT / UPDATE). Обычно это делается на стороне клиента: для типа DATE: alter session set NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"; для типа TIMESTAMP: alter session set NLS_TIMESTAMP_FORMAT="YYYY-MM-DD HH24:MI:SS"; для типа TIMESTAMP WITH TIME ZONE: alter session set NLS_TIMESTAMP_TZ_FORMAT="YYYY-MM-DD HH24:MI:SS"; PS очень советую задуматься об использовании TIMESTAMP WITH TIME ZONE - это поможет избежать многих проблем, особенно если данные будут храниться для/из нескольких различных временных поясов. Также можно управлять настройками по умолчанию при помощи переменной окружения ОС - NLS_TERRITORY - формат даты будет установлен в наиболее распространенный для данной страны.

Комментариев нет:

Отправить комментарий