Я хочу получить все записи, где «F.EINDAT» меньше или даже вчера 8 вечера.SQL, проверьте конкретную дату
WHERE F.EINDAT <= yesterday at 8pm
Как я должен сделать это?
Спасибо.
Я хочу получить все записи, где «F.EINDAT» меньше или даже вчера 8 вечера.SQL, проверьте конкретную дату
WHERE F.EINDAT <= yesterday at 8pm
Как я должен сделать это?
Спасибо.
Попробуйте
select substring(convert(varchar,(getdate()-1)),1,12)+'20:00:00 PM' as Early_Date
- это формат времени '20: 00: 00 PM 'правильно? –
select getdate() -> 07-Nov-14 12:55:10 PM –
24-часовой формат не имеет спецификации AM или PM. –
Попробуйте это.
WHERE F.EINDAT <= CONVERT(VARCHAR(10), DATEADD(day, -1, GETDATE()), 110) + ' 20:00'
Надеюсь, вы найдете это полезным
F.EINDAT <= cast(DateAdd(day, -1, GetDate()) as date) and
RIGHT('0' + CONVERT(VARCHAR(2), DATEPART(HOUR, F.EINDAT)), 2) + ':00' <= '20:00'
выберите * из имя_таблицы где timestampcolumn> литом (текущая_дата в метку времени) - interval'4'hour;
Соответствует требованиям ISO/ANSI SQL.
Спасибо за все ответы.
я получил заявление, которое работает для меня:
where f.eindat >= to_date((to_Char (SYSDATE-1, 'yyyy-mm-dd') || ' 20:00'),'yyyy-mm-dd hh24:mi')
Что RDBMS вы используете? – Mureinik
В большинстве случаев он должен работать, если вы укажете дату в формате ISO, например. '2014-11-06 20:00:00'. – keltar
WHERE F.EINDAT <= DATEADD (час, 20, CONVERT (DATETIME, CONVERT (VARCHAR (10), GETDATE(), 112))) – Rohith