十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
select hour(create_time) AS saleHour, count(id) AS saleCount
创新互联公司专注于涞源企业网站建设,响应式网站开发,商城建设。涞源网站建设公司,为涞源等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
from tableName where date_format(create_time, ‘%Y-%m-%d’ ) = ‘2021-09-07’
group by hour(create_time);
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小时前的,以此类推
可以借助于mysql的日期函数,这里提供下SQL的思路:
SELECT u.hour,
COUNT(*)
FROM (SELECT 获取create_time的小时部分 AS hour
FROM user
WHERE 获取create_time的日期部分 = 某个日期) u
GROUP BY u.hour;
具体的mysql日期函数可以查一下API。
SELECT Hour(a.time),count(*) from a group by Hour(a.time)
你要的是这个结果么 hour列是小时
可以按小时查询,你可以参考下时间记录数timenumSELECTDATE_FORMAT(time,'%Y-%m-%d-%H')astday,count(num)fromtablegroupbytday;