按DATE字符串MSSql排序

Mat*_*oft 1 sql t-sql sql-server

按日期排序给出错误的输出。输入的日期被输入并存储为字符串或Varchar(50),因此当我排序时,它仅使用示例“ 22-11-2016”的第一部分,即“ 22”。太清楚了:这就是我的意思:

在此处输入图片说明

使用以下查询字符串:

SELECT TOP 1 CHECKEDIN, DATE
FROM timereg
WHERE UNILOGIN = @unilogin
ORDER BY DATE DESC, TIME DESC
Run Code Online (Sandbox Code Playgroud)

显然第9栏应该放在最上面,因为该月下旬。我如何将其以某种方式转换为日期时间并对其进行排序,使其真正起作用,或者仅在整个字符串之后进行排序。

-谢谢

Joh*_*tti 5

将您的varchar转换为实际日期

... ORDER BY convert(date,DATE,103) DESC 
Run Code Online (Sandbox Code Playgroud)