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 相关文章推荐
php中的时间显示
Jan 18 PHP
在JavaScript中调用php程序
Mar 09 PHP
需要发散思维学习PHP
Jun 29 PHP
PHP 执行系统外部命令 system() exec() passthru()
Aug 11 PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
php下目前为目最全的CURL中文说明
Aug 01 PHP
PHP中对用户身份认证实现两种方法
Jun 04 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
Nov 02 PHP
mac系统下为 php 添加 pcntl 扩展
Aug 28 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
PHP请求远程地址设置超时时间的解决方法
Oct 29 PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 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
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
PHP序列化操作方法分析
2016/09/28 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
深入浅析Python字符编码
2015/11/12 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
编辑硕士自荐信范文
2013/11/27 职场文书
放飞蜻蜓反思
2014/02/05 职场文书
兰兰过桥教学反思
2014/02/08 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
办公室日常管理制度
2015/08/04 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
2016年社区服务活动总结
2016/04/06 职场文书