更改Oracle中的日期格式

jucafojl  于 2022-10-04  发布在  Oracle
关注(0)|答案(1)|浏览(166)

帮助我在Oracle中编写查询,将日期格式从dd-mm-yyyy更改为dd/mm/yyyy
日期

02-07-1995
03-04-1998

输出

日期

1995年2月7日
1998年3月4日

anauzrmj

anauzrmj1#

如果该列的数据类型为DATE(应该是;不要将日期作为字符串存储到VARCHAR2列中),则:

SQL> create table test (col date);

Table created.

SQL> insert into test values (date '1995-07-02');

1 row created.

一种选择是将to_char函数与所需的格式模型一起使用:

SQL> select to_char(col, 'dd/mm/yyyy') result from test;

RESULT
----------
02/07/1995

在我的数据库中,如果你只是获取存储的数据,你会得到这样的结果:

SQL> select col from test;

COL
--------
02.07.95

更改会话并设置新格式将返回所需的值:

SQL> alter session set nls_date_format = 'dd/mm/yyyy';

Session altered.

SQL> select col from test;

COL
----------
02/07/1995

SQL>

如果将这些值存储为字符串,则首先将它们转换为有效的date数据类型值,然后应用to_char

SQL> create table test (col varchar2(10));

Table created.

SQL> insert into test values ('02-07-1995');

1 row created.

SQL> select to_char(to_date(col, 'dd-mm-yyyy'), 'dd/mm/yyyy') result from test;

RESULT
----------
02/07/1995

另一种选择是将减号替换为斜杠:

SQL> select replace(col, '-', '/') result from test;

RESULT
----------
02/07/1995

SQL>

底线是:永远不要将日期存储为字符串。

相关问题