изменение структуры даты для oracle sql - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь изменить уже существующую дату с ('DD, MON, YY') на ('DD, MONTH, YYYY') в oracle SQL, но она не работает со мной

ALTER TABLE EMP MODIFY (hiredate to_date ('DD,MON,YYYY'))

Ответы [ 2 ]

6 голосов
/ 22 января 2020

Это распространенное заблуждение, что даты в базе данных имеют формат.

Вы не можете изменить формат значения типа данных DATE, так как он не имеет формата; он хранится в базе данных как 7 байт : 2 для года и 1 для месяца, дня, часа, минуты и секунды и всегда содержит эти компоненты, и они являются просто числами. База данных не заботится о формате; он заботится только о значениях.

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

Если вместо этого вы хотите спросить:

Как мы можем получить чтобы изменить формат по умолчанию, используемый для отображения типа данных DATE?

Для SQL / Plus и SQL Developer, вы можете использовать параметр сеанса NLS_DATE_FORMAT:

ALTER SESSION SET NLS_DATE_FORMAT = 'DD,MONTH,YYYY';

Если вы используете другое программное обеспечение для связи с базой данных, вам необходимо прочитать руководство / документацию для этого программного обеспечения.

В качестве альтернативы, если вы хотите спросить:

Как отобразить DATE значения из таблицы с указанным форматом c?

Использовать SELECT с функцией TO_CHAR:

SELECT TO_CHAR( date_column, 'DD,MONTH,YYYY' ) AS formatted_date_column
FROM   table_name;
0 голосов
/ 22 января 2020

A DATE значение в Oracle не имеет никакого формата!

Я предполагаю (и надеюсь), что вам просто нравится изменять формат по умолчанию display . Используйте

ALTER SESSION SET NLS_DATE_FORMAT = 'DD,MONTH,YYYY';

В случае, если тип данных hiredate равен VARCHAR2 вместо DATE, перенесите тип данных в правильный DATE и начните снова с вершины моего ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...