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>
1条答案
按热度按时间anauzrmj1#
如果该列的数据类型为
DATE
(应该是;不要将日期作为字符串存储到VARCHAR2
列中),则:一种选择是将
to_char
函数与所需的格式模型一起使用:在我的数据库中,如果你只是获取存储的数据,你会得到这样的结果:
更改会话并设置新格式将返回所需的值:
如果将这些值存储为字符串,则首先将它们转换为有效的
date
数据类型值,然后应用to_char
:另一种选择是将减号替换为斜杠:
底线是:永远不要将日期存储为字符串。