2013-02-12 1 views
1

Я пытаюсь сделать запрос, что дата графика - это системное время, на которое были набраны данные, более 8 часов после выполнения даты.Sql date> date более чем на 8 часов

Я использую следующий запрос:

select * from pat_results where app_type like 'L' and (chart_dt_utc > perform_dt_utc +8) 

дата и формат времени для обеих колонн 2012-12-29 11:44:00

ли +8 правильно?

+0

Так что ваши две даты колонков не DATETIME, а строка ? В какой базе данных вы работаете, поскольку это, вероятно, будет зависеть от этого. –

+0

база данных оракула – wilburr

ответ

1

Нет, в базах данных, которые позволяют добавить номер к настоящему времени число измеряется в днях.

Значение, которое вы хотите добавить, 8/24,0 - включает в себя десятичное место, потому что некоторые базы данных расчета 8/24 в виде целых чисел и дать вам 0.

+0

Это сработало, спасибо! – wilburr

+0

8/24 также отлично работает. –

1

Нет, + 8 добавлено 8 дней. Вы хотите:

select * from pat_results where app_type like 'L' and datediff(hour, chart_dt_utc, perform_dt_utc) > 8 

Редактировать: Oh. По какой-то причине я думал, что вы используете SQL-сервер. Ну, достаточно сказать, использовать любой эквивалент в вашей РСУБД.

Edit 2: В Oracle вы можете сделать это:

select * from pat_results where app_type like 'L' 
    and (chart_dt_utc > perform_dt_utc + (8/24)) 
+0

это Oracle датированный возврат ORA-00904: «DATEDIFF»: неверный идентификатор. – wilburr

Смежные вопросы