按原始列的SQL顺序

时间:2019-01-02 15:07:23

标签: sql sql-server

我有一个SQL查询,该查询重新格式化了时间分配列以更好的格式显示。需要将其命名为“ timedisposed”,以便在我们的软件中正确显示。但是,我注意到,按时间分配的顺序不同于更改后的格式的“ AS”时间分配列,而不是原始的。这导致12月的日期显示在1月之前。如何按原始时间安排排序,而不按重新格式化的时间排序?

SELECT top 100 ORDNO,convert(varchar(10),TIMEDISPOSED, 101) + right(convert(varchar(32),TIMEDISPOSED,100),8) as TIMEDISPOSED,ORIGREC 
FROM DLOCATION 
WHERE DISPOSED = 'Y' 
ORDER BY TIMEDISPOSED DESC

2 个答案:

答案 0 :(得分:3)

尝试此查询,您可以指定列名,例如adb reverse tcp:8082 tcp:8082

DLOCATION.TIMEDISPOSED

答案 1 :(得分:0)

请记住,您必须强制使用特定订单的唯一方法是使用Order By,在这种情况下,您只应在查询中添加ASC,即:

SELECT top 100 ORDNO,convert(varchar(10),TIMEDISPOSED, 101) + 
right(convert(varchar(32),TIMEDISPOSED,100),8) as TIMEDISPOSED_Calc,ORIGREC 
FROM DLOCATION 
WHERE DISPOSED = 'Y' 
ORDER BY TIMEDISPOSED ASC

但是,请记住,ORDER运算符是有成本的,因此您始终应该考虑它是否比应用程序内的ORDER(而不是数据库)便宜。