2014-12-09 5 views
-1

Я бы хотел получить элементы, размещенные на заказах за последние x часов. Если таблица хранит эти данные в качестве даты, как я смогу получить заказы, размещенные за последние х часов?SQL Server: сравнение даты и времени

+0

Можете ли вы представить нам некоторые из дат, которые у вас есть в БД? Это дата или дата? – Jt2ouan

+0

Если вы используете 'DATE', вы не можете оценить его на уровне часа. –

+0

@ пользователь2684009. , , Ответ seddes правильный (и вы должны его принять), или вы должны уточнить вопрос, почему он не работает. –

ответ

0

Вы можете использовать dateadd для этого предполагая, что поле в настоящее время хранится в виде datetime:

select * 
from orders 
where datefield >= dateadd(hour,-1,getdate()) 

В приведенном выше примере, я использовал -1 для х. Замените это на последние х часов.

0

Ответ sgeddes может работать на уровне запросов. Вы также можете отфильтровать данные за последние х часов на уровне отчета. Вам просто нужно создать параметр (@Hours) в вашем отчете, чтобы указать, что такое «x». Затем добавьте фильтр в свой набор данных. !

Выражение: = Поля DateTime.Value

Оператор:> =

Value: = DateAdd ("ч", - @ часов, сейчас())

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