13-07-2018 00:00 Формат даты в процедуре хранения в Oracle - PullRequest
0 голосов
/ 06 июля 2018

13-07-2018 00: 00 Формат даты в процедуре хранения в Oracle.

Запрос:

SELECT DISTINCT Y.YARD_NAME from MST_ACTUAL_CONSUMPTION A INNER JOIN MST_VP_YARD Y ON Y.YARD_NAME=A.YARD_NO where (TO_DATE(A.TO_DATE,'DD-MM-YYYY HH:MI') BETWEEN TO_DATE( '03-07-2018 00:00','DD-MM-YYYY HH:MI')  AND TO_DATE('13-07-2018 00:00','DD-MM-YYYY HH:MI')) AND  Y.IS_DELETE=0 GROUP BY Y.YARD_NAME;

Ошибка: время должно быть от 1 до 12 "

Примечание: дата вводится как 03-07-2018 00: 00

Ответы [ 3 ]

0 голосов
/ 06 июля 2018

Строка формата должна использовать 24-часовой формат, чтобы иметь возможность разбирать 00: 00

'DD-MM-YYYY HH24:MI'
0 голосов
/ 06 июля 2018

Если вы используете 24-часовой формат (то есть «00:00»), вам нужно использовать HH24, а не HH в маске формата to_date(),

например: TO_DATE( '03-07-2018 00:00','DD-MM-YYYY HH24:MI')

Если вы придерживаетесь 12-часового времени, вам нужно добавить AM (или PM; либо работает) к маске формата и использовать правильное время,

например: TO_DATE( '03-07-2018 12:00 AM','DD-MM-YYYY HH:MI AM')

0 голосов
/ 06 июля 2018

Дата не может быть проанализирована 00:00. это должно 12:00. Если можно передать ввод как 12:00, тогда передайте это значение. в противном случае попробуйте запрос ниже

SELECT DISTINCT Y.YARD_NAME 
from MST_ACTUAL_CONSUMPTION A 
        INNER JOIN MST_VP_YARD Y ON Y.YARD_NAME=A.YARD_NO 
where (TO_DATE(A.TO_DATE,'DD-MM-YYYY HH:MI') BETWEEN TO_DATE( substr('03-07-2018 00:00', 1, 10),'DD-MM-YYYY')  AND TO_DATE(substr('13-07-2018 00:00', 1, 10),'DD-MM-YYYY')) 
AND  Y.IS_DELETE=0 
GROUP BY Y.YARD_NAME;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...