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
评论列表(0条)