2014-11-07 2 views
0

Я хочу получить все записи, где «F.EINDAT» меньше или даже вчера 8 вечера.SQL, проверьте конкретную дату

WHERE F.EINDAT <= yesterday at 8pm

Как я должен сделать это?

Спасибо.

+4

Что RDBMS вы используете? – Mureinik

+0

В большинстве случаев он должен работать, если вы укажете дату в формате ISO, например. '2014-11-06 20:00:00'. – keltar

+0

WHERE F.EINDAT <= DATEADD (час, 20, CONVERT (DATETIME, CONVERT (VARCHAR (10), GETDATE(), 112))) – Rohith

ответ

0

Попробуйте

select substring(convert(varchar,(getdate()-1)),1,12)+'20:00:00 PM' as Early_Date 
+0

- это формат времени '20: 00: 00 PM 'правильно? –

+0

select getdate() -> 07-Nov-14 12:55:10 PM –

+0

24-часовой формат не имеет спецификации AM или PM. –

0

Попробуйте это.

WHERE F.EINDAT <= CONVERT(VARCHAR(10), DATEADD(day, -1, GETDATE()), 110) + ' 20:00' 
0

Надеюсь, вы найдете это полезным

F.EINDAT <= cast(DateAdd(day, -1, GetDate()) as date) and 
RIGHT('0' + CONVERT(VARCHAR(2), DATEPART(HOUR, F.EINDAT)), 2) + ':00' <= '20:00' 
0

выберите * из имя_таблицы где timestampcolumn> литом (текущая_дата в метку времени) - interval'4'hour;

Соответствует требованиям ISO/ANSI SQL.

0

Спасибо за все ответы.

я получил заявление, которое работает для меня:

where f.eindat >= to_date((to_Char (SYSDATE-1, 'yyyy-mm-dd') || ' 20:00'),'yyyy-mm-dd hh24:mi') 
Смежные вопросы