更改 oracle sql 的日期结构

0 sql oracle oracle-sql-data-modeler

我正在尝试在 oracle SQL 中将已经存在的日期从 ('DD,MON,YY') 修改为 ('DD,MONTH,YYYY') 但它对我不起作用

ALTER TABLE EMP MODIFY (hiredate to_date ('DD,MON,YYYY'))
Run Code Online (Sandbox Code Playgroud)

MT0*_*MT0 6

这是一种常见的误解,认为数据库中的日期具有格式。

您不能修改DATE数据类型值的格式,因为它没有格式;它以7 个字节存储在数据库中:2 表示年,1 表示月、日、时、分和秒,并且始终具有这些组件,它们只是数字。数据库不关心格式;它只关心价值观。

您用来访问数据库的客户端软件关心格式,因为它必须与您(用户)交谈,而您通常不喜欢收到大量数字,客户端软件会尝试为您格式化日期。

如果你想问:

我们如何让 <insert name of SQL client software here> 更改它用于显示DATE数据类型的默认格式?

对于 SQL/Plus 和 SQL Developer,您可以使用NLS_DATE_FORMATsession 参数:

ALTER SESSION SET NLS_DATE_FORMAT = 'DD,MONTH,YYYY';
Run Code Online (Sandbox Code Playgroud)

如果您使用不同的软件与数据库对话,那么您将需要阅读该软件的手册/文档。

或者,如果您想问:

我们如何DATE以特定格式显示表格中的值?

SELECTTO_CHAR函数一起使用:

SELECT TO_CHAR( date_column, 'DD,MONTH,YYYY' ) AS formatted_date_column
FROM   table_name;
Run Code Online (Sandbox Code Playgroud)