繁体   English   中英

日期范围之间的时间戳

[英]timestamp between date range

我正在尝试使用查询查找每天的所有记录数:

select cast(Timestamp_field as date), count(*) as cnt
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 ,但不返回任何记录。 知道为什么吗?

我的猜测是问题出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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM