Oracle to_date SQL格式奇怪的行为

Rio*_*Rio 0 sql oracle datetime to-date

我已经搜索过SO网站,认为这很明显,但是我还没找到.基本上设置如下:

我在表中有一个字符串,如下所示:

06/22/2010 00:00:00

我做了一个选择:

SELECT To_Date(item, 'MM/DD/YYYY HH24:MI:SS') from that_table
Run Code Online (Sandbox Code Playgroud)

所以我有效地做了

SELECT To_Date('06/22/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS') from that_table
Run Code Online (Sandbox Code Playgroud)

我的数据库返回:

22.06.2010 00:00:00

现在我知道我能做到

to_char(to_Date('06/22/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS')
Run Code Online (Sandbox Code Playgroud)

但是我需要select来返回日期格式(MM/DD/YYYY HH24:MI:SS),而不是字符串.我怎样才能做到这一点?

编辑: 实际输出:

22.06.2010 00:00:00

期望的输出(日期格式):

06/22/2010 00:00:00

Ton*_*ews 5

DATE没有格式,只有在转换为字符串以进行显示时才会格式化.如果您正在使用SQL Plus,那么当您显示DATE列(不使用TO_CHAR显式格式化它)时,SQL Plus本身会使用NLS_DATE_FORMAT设置执行TO_CHAR转换:

SQL> select sysdate from dual;

SYSDATE
---------
23-JUN-10

SQL> alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS';

Session altered.

SQL> select sysdate from dual;

SYSDATE
-------------------
2010-06-23 15:17:12
Run Code Online (Sandbox Code Playgroud)

如果您不使用SQL Plus,那么您使用的任何工具都将执行类似操作,并且可能有不同的方式来指定显示的日期格式.