mysql按24小时,时间点查询拜托各位大神

mysql按24小时,时间点查询拜托各位大神,第1张

SQL没办法得到当前的时间戳 除非你是用服务器脚本语言 追问: SELECT count(*) FROM `ip11` WHERE DATE_FORMAT(NOW(),'%H')-DATE_FORMAT(time_tip,'%H')=1 and TO_DAYS( NOW( ) ) - TO_DAYS(time_tip)=1可以的我写的这个就可以的,关键是我现在不知道怎么写循环的。我上面的这个句子可以实现查询每个小时内的记录条数,我不想写24个,用循环怎么写呢。 回答: SQL循环我不知道,只做过服务器脚本语言的 PS:DATE_FORMAT(NOW(),'%H')得到的是当前小时 比如11点20,用DATE_FORMAT(NOW(),'%H')得到的值是11,而不是你想要的12 追问: DATE_FORMAT(NOW(),'%H')-DATE_FORMAT(time_tip,'%H')=0 比如现在14:40,上面这句话可以得到14:00-14:40之间的记录数。 我现在就是不会写php的循环 回答: <?php for($i=0$i<=11$i++){ $sql = "SELECT count(*) FROM `ip11` WHERE DATE_FORMAT(NOW(),'%H')-DATE_FORMAT(time_tip,'%H')=".$i." and TO_DAYS( NOW( ) ) - TO_DAYS(time_tip)=1"echo $sql} ?>echo $sql只是测试 i=0就是当前小时的,i=1就是1小时前的,以此类推

SQL好写,但是要说得明白估计很费劲,关于函数就不说明了,百度查;

思路是,将24小时内分为8个区间,分别以0~7表示,0表示3小时内、1表示第6到第三小时内……

以下SQL是统计区间的数量,请参考:

SELECT

FLOOR((TIMESTAMPDIFF(SECOND,acquisition_time,NOW()) - 1)/10800) AS section,

COUNT(1)

FROM

co_data_history

WHERE

1 = 1

AND acquisition_time >= DATE_SUB(NOW(),INTERVAL 1 DAY)

AND acquisition_time < NOW()

GROUP BY section


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

原文地址: http://www.outofmemory.cn/zaji/6117686.html

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

发表评论

登录后才能评论

评论列表(0条)

保存