Shantanu sinha Ответов: 4

Как отобразить последние 10 чисел в SQL


у меня есть таблица A с двумя столбцами (number varchar(600), Date_ varchar(800))
теперь у меня есть для отображения последних 10 номеров заказов по Date_.
SELECT top(10) Number,Date_ FROM A ORDER BY Date_ DESC

проблема в том, что в течение одного месяца он показывает желаемый результат,
но как только в следующем месяце начнется он не покажет желаемого результата
я хочу, чтобы результат был таким.
10,2/2/2016
22,1/2/2016
10,31/1/2016
20,30/1/2016
30,29/1/2016
23,28/1/2016
20,27/1/2016
11,26/1/2016
18,25/1/2016
62,24/1/2016
56,23/1/2016
54,22/1/2016
44,21/1/2016

я получаю этот результат за -- /1 / 2016 месяц, но не за -- / 2 / 2016.
так что будьте добры помочь.

Maciej Los

Хммм.... Date столбец-это тип данных varchar...
Измените его на правильный тип данных, и вы сможете сортировать данные по дате.

ZurdoDev

Да, но это varchar(800), так что он построен так, чтобы длиться в будущем дольше, чем может длиться только DateTime.

Maciej Los

;)

4 Ответов

Рейтинг:
36

Maciej Los

Пожалуйста, прочтите мой комментарий к этому вопросу. Вы должны использовать правильный тип данных!

Чтобы обойти эту проблему, попробуйте сделать следующее:

SELECT top(10) Number, Date_
FROM A
ORDER BY CONVERT(DATE, Date_) DESC


Для получения более подробной информации, пожалуйста, смотрите:
Приведение и преобразование (Transact-SQL)[^]
Изменение Столбцов (Компонент Database Engine)[^]
ALTER TABLE (Transact-SQL)[^]


ZurdoDev

+5. Просто.

Maciej Los

Спасибо, Райан.

Рейтинг:
1

Shantanu sinha

Цитата:
Выберите топ(10) Номер, Дата
ОТ А
ORDER BY convert (datetime, Date, 103) DESC


ZurdoDev

Зачем ты это сделал? Вы только что вставили Решение 1 в качестве нового решения вашего собственного вопроса. Это странно.

Shantanu sinha

я уже писал об этом раньше

Рейтинг:
1

Daniel Jones

SELECT TOP 10 PARSE(Number AS int) AS Number,
              PARSE(Date AS datetime2) AS Date
FROM A
ORDER BY Date DESC


Сделайте разбор в вашем порядке по


Рейтинг:
1

sanket1986

SELECT top(10) Number,Date_ FROM A ORDER BY CAST(Date_ AS DATETIME) DESC