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中for循环语句的几种变型
Mar 16 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
Jun 02 PHP
php重定向的三种方法分享
Feb 22 PHP
一个显示效果非常不错的PHP错误、异常处理类
Mar 21 PHP
php常用的安全过滤函数集锦
Oct 09 PHP
Thinkphp单字母函数使用指南
May 08 PHP
浅谈php中fopen不能创建中文文件名文件的问题
Feb 06 PHP
PHP-CGI远程代码执行漏洞分析与防范
May 07 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
PHP调用接口用post方法传送json数据的实例
May 31 PHP
php实现快速对二维数组某一列进行组装的方法小结
Dec 04 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 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
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
php身份证号码检查类实例
2015/06/18 PHP
php和html的区别点详细总结
2019/09/24 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
js判断ie版本号的简单实现代码
2014/03/05 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
angular2使用简单介绍
2016/03/01 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
详解python中字典的循环遍历的两种方式
2017/02/07 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
全球最大的服务市场:Fiverr
2017/01/03 全球购物
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
2019军训心得体会
2019/06/27 职场文书
python 破解加密zip文件的密码
2021/04/22 Python
Android中的Launch Mode详情
2022/06/05 Java/Android
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS