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


Posted in PHP onOctober 10, 2017

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

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

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

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

/* 查询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;
 // 执行查询
}

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

优化方法:

/* 查询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程序设计有所帮助。

PHP 相关文章推荐
在IIS上安装PHP4.0正式版
Oct 09 PHP
PHP 程序员的调试技术小结
Nov 15 PHP
PHP中SESSION使用中的一点经验总结
Mar 30 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
php 模拟get_headers函数的代码示例
Apr 27 PHP
PHP函数addslashes和mysql_real_escape_string的区别
Apr 22 PHP
学习php中的正则表达式
Aug 17 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
php读取der格式证书乱码解决方法
Jun 22 PHP
PHP receiveMail实现收邮件功能
Apr 25 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
详解Go与PHP的语法对比
May 29 PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 #PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 #PHP
PHP完全二叉树定义与实现方法示例
Oct 09 #PHP
PHP实现的折半查询算法示例
Oct 09 #PHP
PHP实现的MD5结合RSA签名算法实例
Oct 07 #PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
Oct 07 #PHP
PHP实现打包下载文件的方法示例
Oct 07 #PHP
You might like
drupal 代码实现URL重写
2011/05/04 PHP
JavaScript For Beginners(转载)
2007/01/05 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
在Django的通用视图中处理Context的方法
2015/07/21 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
python制作填词游戏步骤详解
2019/05/05 Python
python实现LRU热点缓存及原理
2019/10/29 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
海量信息软件测试笔试题
2015/08/08 面试题
销售代表求职自荐信
2013/10/01 职场文书
社区党总支书记先进事迹材料
2014/01/24 职场文书
2013年军训通讯稿
2014/02/05 职场文书
综合实践活动方案
2014/02/14 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
关于调整工作时间的通知
2015/04/24 职场文书
2015年学校教科室工作总结
2015/07/20 职场文书
护士业务学习心得体会
2016/01/25 职场文书