Сравнение метки времени с sysdate в oracle - PullRequest
0 голосов
/ 30 апреля 2020

Здравствуйте. Я пытаюсь получить статус выполнения задания на каждый день. В конце базы данных задание выполняется с 18:00 до 18:10. Есть один столбец, который я извлекаю, и это отметка времени, например 29-APR-20 20.08.30

Я сейчас, так как это задание выполняется ежедневно, поэтому я хочу узнать состояние текущего прогона. Он не должен возвращать ни одной строки за сегодняшний день, если задание еще не началось.

Я поставил условие ниже:

where CAST(log_date as date) > sysdate-1

Теперь, когда сегодня 30 апреля, sysdate-1 это 29прил. Таким образом, он должен найти столбец с датой 30 апреля, но так как задание еще не было выполнено, теперь должны появиться строки.

Но в выводе я получаю 29-APR-20 20.08.30

1 Ответ

2 голосов
/ 30 апреля 2020

Я подозреваю, что вы хотите:

where log_date > trunc(sysdate)

Это проверяет, существует ли строка, которой log_date принадлежит текущий день (без компонента времени). С другой стороны, ваше исходное выражение проверило, существует ли строка в течение последних 24 часов - что, если ваша работа выполняется в определенное время ежедневно, всегда будет возвращать что-то.

...