我有一张包含两列(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。 如此友好的帮助。
答案 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更改为日期(假设字段中没有垃圾)应该解决这个问题。