2016-01-13 3 views
0

У меня есть таблица под названием «АДРЕСА».Код Oracle sql не работает должным образом?

Мой запрос:

select MODIFIED_DATE, CITY from ADDRESSES order by MODIFIED_DATE desc, CITY asc; 

Запустив выше запрос я получаю:

MODIFIED_DATE CITY 
============= ============== 
13-JAN-16  CHICAGO 
13-JAN-16  CHICAGO 
13-JAN-16  CHICAGO 
13-JAN-16  KANSAS CITY 
13-JAN-16  KANSAS CITY 
13-JAN-16  KANSAS CITY 
13-JAN-16  KANSAS CITY 
13-JAN-16  KANSAS CITY 
13-JAN-16  CHICAGO 
13-JAN-16  CHICAGO 
13-JAN-16  DENVER 
13-JAN-16  DENVER 

Но я ожидаю:

MODIFIED_DATE CITY 
============= ============== 
13-JAN-16  CHICAGO 
13-JAN-16  CHICAGO 
13-JAN-16  CHICAGO 
13-JAN-16  CHICAGO 
13-JAN-16  CHICAGO 
13-JAN-16  DENVER 
13-JAN-16  DENVER 
13-JAN-16  KANSAS CITY 
13-JAN-16  KANSAS CITY 
13-JAN-16  KANSAS CITY 
13-JAN-16  KANSAS CITY 
13-JAN-16  KANSAS CITY 

Тип данных MODIFIED_DATE является дата и данные Тип CITY - VARCHAR2.

Почему это происходит?

+4

Я подозреваю, что есть время компонент для ваших 'значений date', даже если он не отображается. –

+1

Запустите это сначала: 'alter session set nls_date_format = 'dd-mon-yyyy hh24: mi: ss';' Затем повторно запустите свой запрос;) – Ditto

ответ

9

Дата публикации: более подробная информация, чем показано на рисунке: часы, минуты и секунды. Если вы заинтересованы только в части даты вы должны использовать trunc()

order by trunc(MODIFIED_DATE) desc, CITY asc 
Смежные вопросы