Oracle SQL TO_CHAR возвращает неверные индикаторы меридиана - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь сделать заказ несколько раз по убыванию.Я использовал функцию TO_CHAR, чтобы извлечь время из их даты, 12 часов с индикатором меридиана.Однако мои результаты не такие, как я ожидал - есть AM, смешанные с моими PM.

Вот мой запрос:

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.Я ожидаю, что результаты выборки будут только в личку, так как я делаю это днем.

Есть идеи, почему это происходит?Когда я перешел на 24 часа, он работал нормально.

1 Ответ

0 голосов
/ 23 января 2019

Потому что вы сортируете строку, а не дату.

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