PHP实现数据库统计时间戳按天分组输出数据的方法

2025-05-29 0 96

本文实例讲述了PHP实现数据库统计时间戳按天分组输出数据的方法。分享给大家供大家参考,具体如下:

比如统计每天用户注册数,数据库表存了一张用户注册记录表:

?

1
create table table_name(id int primary key,register_time int(10));

register_time记录的是时间戳,以前的做法是,接收查询开始时间、查询结束时间,然后循环查询每天的注册数量,代码:

?

1

2

3

4

5

6

7

8

9

10
/* 查询2015-12-01 至 2015-12-14 */

// 开始的时间戳

$startUnix = 1448899200; // 2015-12-01 00:00:00

// 结束的时间戳

$endUnix = 1450108800; // 2015-12-15 00:00:00

for($i = $startUnix; $i < $endUnix; $i += 86400){ // 86400为1天的秒数

// 查询

$sql = 'select count(*) from table_name where register_time>= '.$i.' and register_time < '.$i + 86400;

// 执行查询

}

这种方法的弊端就是,查询开始于结束的日期相差多少天就查询检索数据库多少次。

优化方法:

?

1

2

3

4

5

6

7

8
/* 查询2015-12-01 至 2015-12-14 */

// 开始的时间戳

$startUnix = 1448899200; // 2015-12-01 00:00:00

// 结束的时间戳

$endUnix = 1450108800; // 2015-12-15 00:00:00

$sql = 'select count(id) as register_count, FROM_UNIXTIME(register_time, '%Y-%m-%d') as datetime from table_name where register_time>= '.$startUnix.' and register_time < '.$endUnix group by datetime;

// 执行查询

...

查询时把时间戳转成天,最后group by 分组,得到每天的注册id数,查询数据库一次

希望本文所述对大家PHP程序设计有所帮助。

原文链接:http://blog.csdn.net/mxdzchallpp/article/details/50343533

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP实现数据库统计时间戳按天分组输出数据的方法 https://www.kuaiidc.com/93125.html

相关文章

发表评论
暂无评论