有这么张表,用户发帖记录表,如下:
我要查询这张表里面 前一天07:30 到 当天07:30 ,也就是相当于前一天的
发帖数量,回帖数量
这个怎么写啊~~~
CREATE TABLE `lzh_member_discuz_logs` (
`id` int(11) NOT NULL,
`uid` int(11) DEFAULT '0',
`add_time` int(11) DEFAULT '0',
`type` int(11) DEFAULT '0' COMMENT '1:发帖2:回帖',
`tid` varchar(10) DEFAULT NULL,
`pid` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_uid` (`uid`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='论坛用户发帖回帖记录表';
我感觉的话,不能add time上面去动手啊...用定时器获取当天的早上8点毫秒值
然后在数据库操作,FROM_UNIXTIME(create_date,'%Y-%m-%d %H:%i:%S') create_date, 把秒转为日期
在把这个日期-1, between这个两个日期作为条件..
我假设你add_time存储的是:年月日时分(1708241157)
select type, count(*) from lzh_member_discuz_logs
where add_time between concat(date_format(date_sub(curdate(), INTERVAL 1 DAY), '%y%m%d'),'0730') and concat(date_format(now(), '%y%m%d'), '0730')
group by type
有一个sql的分组统计 可以统计出来
add_time存的是什么,是秒?怎么不是日期类型
select * from table where add_time between time_a and time_b (不知道你的时间怎么存的,自己考虑咯 )用between 查询指定范围内的数据
用group by就搞定
select type,count(*) from lzh_member_discuz_logs group by type having add_time between 时间段
注意!不能用where!!!!!!!!