2015-02-27 4 views
0

У меня есть столбец datetime, даты показаны как «11/13/2012 1:48:27 PM» Мне нужно преобразовать его в «11/13/12».Сортировка столбца datetime, преобразованного varchar

Я знаю, что я могу преобразовать его с помощью

convert(varchar(10), datevalue, 1) 

но когда я отсортировать столбец после преобразования его не сортировать по дате. Я не уверен, что convert(datetime, datevalue, 1) должен делать что-либо, но ничего не происходит, и у меня все еще есть значение даты по умолчанию.

Я попытался это

select convert(varchar(10), datevalue, 1) 
from table 
order by convert(datetime, datevalue, 1) desc 

Это работает, но мой больше запросов выбирает отличный, и я получаю сообщение об ошибке

ORDER BY пункты должны появиться в списке выбора, если SELECT DISTINCT задан

+0

конвертировать после сортировки. –

+1

Покажите свой «больший запрос». У вас есть одна колонка в DISTINCT, которой нет в ORDER BY. Добавьте его, и он должен работать. – Jens

+0

Вы также можете попробовать применить его к типу 'DATE' вместо того, чтобы отнести его к varchar' CAST (datevalue as date) ' –

ответ

0

Try что-то вроде:

SELECT CONVERT(varchar(10), datevalue, 1) 
FROM table 
ORDER BY datevalue desc 
0

Попробуйте это:

SELECT CONVERT(DATETIME, datevalue, 103) 
FROM table 
ORDER BY CONVERT(DATETIME, datevalue, 103) 
0
select convert(varchar(10), datevalue, 1) 
from table 
order by datevalue desc 

Вам не нужно преобразовать дату в order by заявлении. Только имя столбца будет работать, если его тип данных равен «datetime»

Смежные вопросы