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自动生成月历代码
Oct 09 PHP
php 删除数组元素
Jan 16 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
php中smarty区域循环的方法
Jun 11 PHP
Symfony2安装的方法(2种方法)
Feb 04 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
Jan 12 PHP
Yii CFileCache 获取不到值的原因分析
Feb 08 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 PHP
详解laravel安装使用Passport(Api认证)
Jul 27 PHP
实例分析10个PHP常见安全问题
Jul 09 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 PHP
laravel添加前台跳转成功页面示例
Oct 22 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
生成缩略图
2006/10/09 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
Vue使用Proxy代理后仍无法生效的解决
2020/11/13 Javascript
[09:37]DOTA2卡尔工作室 英雄介绍圣堂刺客篇
2013/06/13 DOTA
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
Python splitlines使用技巧
2008/09/06 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
2019/04/29 Python
Python 中使用 PyMySQL模块操作数据库的方法
2019/11/10 Python
python之语音识别speech模块
2020/09/09 Python
Python字符串及文本模式方法详解
2020/09/10 Python
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
韩国保养品、日本药妆购物网:小三美日
2018/12/30 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
给海归自荐信的建议
2013/12/13 职场文书
代办委托书怎样写
2014/04/08 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers