Oracle: Как преобразовать следующую дату в другой формат: - PullRequest
0 голосов
/ 01 июня 2011

в моем запросе выбора у меня есть следующее

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

Что дает:

08-JUN-11

Что мне нужно, так это дать:

2011-06-08

EDIT: Данные поступали неправильно. извиняюсь. Ниже работает отлично

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

Ответы [ 2 ]

3 голосов
/ 01 июня 2011

Ваш столбец DATE_NEXT_ARRIVAL, очевидно, имеет тип данных date.

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 голос
/ 01 июня 2011

в Oracle вы можете преобразовать столбец DATE в строку с помощью

to_char(NEXT_ARRIVAL_DATE, 'yyyy-mm-dd')

, но похоже, что значение NEXT_ARRIVAL_DATE является строкой в ​​требуемом формате.так что вы можете просто сделать select NEXT_ARRIVAL_DATE from ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...