2015-08-26 2 views
0

Я хочу показать столбец даты в порядке убывания. Так, например, так, как я хочу, отображаемаяРучка Даты в течение лет

04/15/2015
03/15/2015
04/15/2014
03/15/2014
04/15/2013
03/15/2013

Однако мои результаты запроса отображения в порядке убывания по месяцам. Что я должен изменить, чтобы получить результаты в моем желаемом форматировании?

Create Table DateTest 
(
    ID int 
    ,testdate datetime 
) 

Insert Into DateTest Values 
(1, '2013-03-15 00:00:00.000') 
,(2,'2014-03-15 00:00:00.000') 
,(3,'2015-03-15 00:00:00.000') 
,(4,'2013-04-15 00:00:00.000') 
,(5,'2014-04-15 00:00:00.000') 
,(6,'2015-04-15 00:00:00.000') 

Select ID, CONVERT(VARCHAR(10), TestDate, 101) As [Date] FROM DateTest 
ORDER BY [Date] DESC 
+0

Поскольку вы сортируете его в формате VARCHAR (10) '. Это будет обрабатывать даты как обычный текст и сортировать соответственно. Если вы хотите сортировать по фактической дате, то либо не 'CONVERT()', либо не забудьте преобразовать его обратно в 'DATE' или' DATETIME'. –

ответ

1

Вы можете ORDER BY первоначальное значение даты, но до сих пор SELECT значение как VARCHAR(10) например так:

Select ID, CONVERT(VARCHAR(10), TestDate, 101) As [Date] FROM DateTest 
ORDER BY TestDate DESC 

Это сортирует их, как вы хотите, и по-прежнему отображать их в формате VARCHAR(10).

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