MYSQL数据库,怎样查询一个时间范围内,每个时间点内的数据?

MYSQL数据库,怎样查询一个时间范围内,每个时间点内的数据?,第1张

1.假设数据库中有一个名为TestTest的表。表格内容如下图所示。

2.Select*fromTesttestwhereMonth(date)='9';,它表示对TestTest表中的9月份记录的查询。

3.单击“Run”执行SQL语句,用户可以从下面看到,9月份的三个记录被查询了。

4.Select*fromTesttestwhereyear(Date)='2017';在美国2017年是被质疑的一年。如下图所示,2017年仅查询了一条记录,如下图。

一般可以针对记录时间字段进行筛选获取一段时间的记录。

我们可以在where子句里用" 时间字段>='时间下限' and 时间字段<='时间上限' ",或者" 时间字段 between '时间下限' and '时间上限' "限定检索记录范围,还可以利用时间日期函数计算日期字段来筛选出某一时段的记录,例如where year(时间字段)=2016检索出2016年的记录。

具体的写法是千变万化的,需要根据数据结构和查询需求而定。

时间段统计,可以采用 hour(subscribe_time) 取出小时然后分层。思路:

select

uid

,CASE WHEN HOUR(subscribe_time) BETWEEN 0 AND 1 THEN '00:00:00'

WHEN HOUR(subscribe_time) BETWEEN 2 AND 3 THEN '02:00:00'

...

ELSE '23:00:00' END -- 生成时间分层部分,insert前外层sql加上日期后作为唯一的时间值

,COUNT(*)

FROM yht_fans WHERE subscribe_time>=UNIX_TIMESTAMP(CURDATE()) and subscribe_time<=UNIX_TIMESTAMP(CURDATE())+86400

GROUP BY 1,2


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6723794.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存