如何在sql中显示最后10个数字

时间:2016-08-18 17:02:06

标签: sql sql-server

我有一张包含两列(number varchar(600),Date_ varchar(800))的表格A. 现在我必须按日期显示最后10个数字。

   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。 如此友好的帮助。

3 个答案:

答案 0 :(得分:0)

如果您不想/无法更改表格的结构,则需要使用Parsing

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

您可能还需要在PARSE中执行ORDER BY

答案 1 :(得分:0)

尝试以下脚本

 SELECT top(10) Number,Date 
  FROM A 
  ORDER BY convert(datetime,Date,103) DESC

答案 2 :(得分:0)

只需对代码进行一些小修改即可解决此问题

SELECT top(10)Number,Date FROM A ORDER BY cast(DATE_ as date) DESC。

通常,日期在Microsoft世界中存储为数字,即1/1/1900为1 1/2/1900是2 1/31/1900是31,依此类推......

所以将varchar更改为日期(假设字段中没有垃圾)应该解决这个问题。