我在写:
Select datediff(hh,getutcdate(), End_Date) as "Duration"
from MasterTable
order by Duration
按升序得到小时值的差值。我得到输出,
<>之前持续时间---------259年-210年510223575105235之前但是我想,排序必须基于小时值的正数和负数。因此,我需要输出如下:
<>之前持续时间--------510223575105235-259年-210年之前做这样的任务有什么调整吗?
如果你确实想要这个序列,就像你在问题中指出的那样,它是所有的正数以升序排列,然后是负数以升序排列,它应该是:
Select datediff(hh,getutcdate(),End_Date) as "Duration" from MasterTable
order by CASE WHEN Duration >= 0 THEN 0 ELSE 1 END,Duration
理解你需要的是忽略持续时间符号:
尝试使用ABS:
Select datediff(hh,getutcdate(),End_Date) as "Duration" from MasterTable order by ABS(Duration)
试试这个,
Select Abs(datediff(hh,getutcdate(),End_Date)) as "Duration" from MasterTable order by Abs(Duration)