Oracle SQL TO_CHAR返回不正确的子午线指示器

时间:2019-01-23 18:56:13

标签: sql oracle to-char

我正在尝试按降序排序。我已使用TO_CHAR函数从其日期(带有子午线指示器)的12小时中提取时间。但是,我的结果并不理想-我的PM中混入了AM。

这是我的查询:

SELECT TO_CHAR(SAMPLETIME, 'HH:MI:SS AM') AS Time_Checked
ORDER BY Time_Checked DESC;

这是我得到的结果的一个示例:

Time Checked
-------------
12:56:24 PM
12:56:24 PM
12:56:24 PM
12:56:24 PM
12:56:24 PM
12:56:24 PM
12:56:24 AM
12:56:24 AM
12:56:24 AM
12:56:24 AM
12:56:24 AM
12:56:24 AM
12:51:28 PM
12:51:28 PM
12:51:28 PM
12:51:28 PM
12:51:28 PM
12:51:28 PM
12:51:24 AM
12:51:24 AM
12:51:24 AM
12:51:24 AM
12:51:24 AM
12:51:24 AM

我希望重复的时间,因为它来自对滞后时间进行连续检查的数据库。它给了我相等数量的AM和PM。我希望样本结果仅在PM中,因为我是在下午进行的。

关于为什么发生这种情况的任何想法?当我更改为24小时后,效果很好。

1 个答案:

答案 0 :(得分:5)

因为您要对字符串而不是日期进行排序。

SELECT TO_CHAR(SAMPLETIME, 'HH:MI:SS AM') AS Time_Checked
ORDER BY SAMPLETIME DESC;