Oracle:如何将以下日期转换为其他格式:

时间:2011-06-01 15:22:20

标签: oracle sql-server-2008

在我的选择查询中,我有以下

substr(to_date(NEXT_ARRIVAL_DATE, 'yyyy-mm-dd'), 0, 10)

哪个收益率:

08-JUN-11

我需要的是产量:

2011-06-08

编辑: 数据出错了。抱歉。以下工作正常

to_char(to_date(NEXT_ARRIVAL_DATE, 'mm/dd/yyyy'), 'YYYY-MM-DD') ||  ' 00:000:00'

2 个答案:

答案 0 :(得分:3)

您的DATE_NEXT_ARRIVAL列显然有一个日期数据类型。

SQL> create table t23 (next_arrival_date date)
  2  /

Table created.

SQL> insert into t23 values (sysdate+7)
  2  /

1 row created.

SQL> select to_date(next_arrival_date, 'YYYY-MM-DD')
  2  from t23
  3  /

TO_DATE(N
---------
11-JUN-08

SQL>

如果您想以其他格式显示日期,则需要使用TO_CHAR(),即将其转换为字符串:

SQL> select to_char(next_arrival_date, 'YYYY-MM-DD')
  2  from t23
  3  /

TO_CHAR(NE
----------
2011-06-08

SQL>

如果您必须为大量日期执行此操作,则可能需要更改会话设置....

SQL> alter session set nls_date_format='YYYY-MM-DD'
  2  /

Session altered.

SQL> select sysdate, next_arrival_date
  2  from t23
  3  /

SYSDATE    NEXT_ARRIV
---------- ----------
2011-06-01 2011-06-08

SQL>

答案 1 :(得分:1)

在Oracle中,您可以使用

将DATE列转换为字符串
to_char(NEXT_ARRIVAL_DATE, 'yyyy-mm-dd')

但看起来NEXT_ARRIVAL_DATE的值是所需格式的字符串。 所以你可以select NEXT_ARRIVAL_DATE from ...