按SQL Server中具有AM PM类型时间的列进行排序

时间:2013-12-15 19:25:45

标签: sql sql-server

我正在使用SQL Server 2008,我有一个表,其列名为ApTime,数据类型为TIME,以24小时格式存储时间。

从表中获取数据时,它们必须以AM / PM格式显示。

我想要的是我想按ApTime列对结果进行排序。尝试的是没有给我我想要的答案。

这是我的代码。

SELECT ApId,Name,EmpName,CONVERT(VARCHAR,ApTime,100)AS InTime
FROM AppDetails
ORDER BY EmpName,InTime;

2 个答案:

答案 0 :(得分:1)

如果您想按ApTime排序,为什么要在EmpName中加入order by?此外,在指定varchar()

时,您应始终包含长度
SELECT ApId,Name, EmpName, CONVERT(VARCHAR(100), ApTime, 100) AS InTime
FROM AppDetails
ORDER BY InTime;

答案 1 :(得分:0)

如果您希望按InTime排序结果,请不要按EmpName排序。此外,如果要按ApTime的时间值排序,只需使用它而不是按一些varchar格式排序,这将按字典顺序排序

SELECT   ApId, Name, EmpName, CONVERT(VARCHAR,ApTime,100) AS InTime
FROM     AppDetails
ORDER BY ApTime;