2016-09-20 7 views
0

Я пытаюсь найти все количество записей на каждый день, используя запрос:метки времени между диапазоном дат

select cast(Timestamp_field as date), count(*) from table1 group by 1 having cast(Timestamp_field as date) between date and date -10; 

Timestamp_field отметка время, и я литье это на сегодняшний день. Эта; несмотря на максимальное значение Timestamp_field, показывающее 2016-09-20 12:31:38.000000, не возвращает никакой записи. Любая идея почему?

ответ

2

Моя догадка заключается в том, что проблема заключается в том, что проблема заключается в between. Возможно, это сработает для вас:

select cast(Timestamp_field as date), count(*) 
from table1 
group by 1 
having cast(Timestamp_field as date) between date - 10 and date; 

Меньшее значение должно идти сначала для сравнения.

Примечание: Вы должны сделать фильтрацию перед тем в group by, а не после того, как:

select cast(Timestamp_field as date), count(*) 
from table1 
where cast(Timestamp_field as date) between date - 10 and date; 
group by 1