#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 - формат даты будет установлен в наиболее распространенный для данной страны.
Комментариев нет:
Отправить комментарий