mysql计算连续天数,mysql连续登录天数,连续天数统计
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2016年11月28日 09:29:10 星期一
http://fanshuyao.iteye.com/
mysql计算连续天数,mysql连续登录天数,连续天数统计:
http://fanshuyao.iteye.com/blog/2341455
Oracle计算连续天数,计算连续时间,Oracle连续天数统计
http://fanshuyao.iteye.com/blog/2341163
一、表结构及初始化数据
DROP TABLE user_login; CREATE TABLE user_login( pid INT NOT NULL, login_time DATETIME NOT NULL ); INSERT INTO user_login(pid, login_time) VALUES(1,'2016-11-25 13:30:45'); INSERT INTO user_login(pid, login_time) VALUES(1,'2016-11-24 13:30:45'); INSERT INTO user_login(pid, login_time) VALUES(1,'2016-11-24 10:30:45'); INSERT INTO user_login(pid, login_time) VALUES(1,'2016-11-24 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(1,'2016-11-23 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(1,'2016-11-10 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(1,'2016-11-09 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(1,'2016-11-01 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(1,'2016-10-31 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-11-25 13:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-11-24 13:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-11-23 10:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-11-22 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-11-21 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-11-20 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-11-19 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-11-02 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-11-01 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-10-31 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-10-30 09:30:45'); INSERT INTO user_login(pid, login_time) VALUES(2,'2016-10-29 09:30:45');
二、封装计算连续天数的方法
DELIMITER $$ CREATE FUNCTION f_continuty_days(id INT, start_time DATE, end_time DATE) RETURNS INT BEGIN DECLARE days INT; DECLARE flag INT; DECLARE previous_day DATE; SET days := 0; SET flag := 1; SET previous_day := DATE_SUB(end_time,INTERVAL 1 DAY); WHILE flag>0 DO SELECT COUNT(DISTINCT(DATE(login_time))) INTO flag FROM user_login WHERE pid = id AND DATE(login_time) = previous_day ; IF flag > 0 THEN SET days := days + 1; SET previous_day := DATE_SUB(previous_day,INTERVAL 1 DAY); END IF; END WHILE; RETURN days; END$$ DELIMITER ;
三、调用方法
把用户pid、开始时间、结束时间参数传进去。
SELECT f_continuty_days(1,DATE('2016-10-01'),DATE('2016-11-25'));
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2016年11月28日 09:29:10 星期一
http://fanshuyao.iteye.com/
相关推荐
关系型数据库+Mysql+查询用户连续登陆天数+数据统计 关系型数据库+Mysql+查询用户连续登陆天数+数据统计 关系型数据库+Mysql+查询用户连续登陆天数+数据统计 关系型数据库+Mysql+查询用户连续登陆天数+数据统计 关系...
计算天数 计算天数计算天数计算天数 计算天数计算天数 计算天数 计算天数
1,创建测试表 CREATE TABLE `testsign` ( `userid` int(5) DEFAULT NULL, `username` varchar(20) DEFAULT NULL, `signtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, ...
在现在的很多网站中都有这样一个功能。记录用户的连续登陆天数,所谓的连续在线是指相邻两天都登录过...这篇文章主要介绍的是利用sql语句如何查询在两个日期之间最大的连续登录天数,有需要的朋友们下面来一起看看吧。
纯SQL语句实现,不需要写存储过程或者函数 在MySQL环境下测试过没有问题
拿去可以直接用的计算2个日期间相差天数,并过滤了节假日和周末。
主要介绍了MySQL计算两个日期相差的天数、月数、年数,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
请假时长计算和每月工作天数计算源码 请假时长计算和每月工作天数计算源码
用于mysql的服务器日常备份(过期备份自动删除) 1.导出sql文件 2.7Z压缩保存到您设定的目录 3.删除过期压缩文档 4.请手动设置把本文件列入计划任务每天一次或者自定义
mysql 日期操作 增减天数、时间转换、时间戳.docx
最近项目有一个业务是用户连续签到xx天赠送多少奖励积分等等,看了网上绝大部分的思路,查询所有签到记录在进行比对有没有漏签,个人认为有些麻烦,自己设计了一下,仅供朋友们一些参考,如果你们有更好的想法,请...
我们用一组连续的天数作为左表然后left join 要查询的数据 最后group by.:连续天数表 t1 left join 业务数据 t2 group by t1.day ,如下图: SELECT t1.`day`, COUNT(t2.user_id) payment_num FROM (SELECT @...
mysql全量备份脚本,修改脚本里面的数据库链接地址以及备份文件存放路径,直接可以运行该脚本。该脚本可配置备份文件存放天数。配合crontab定时器,可实现:定时备份数据库并只保留配置天数内的备份文件,自动删除...
今天小编就为大家分享一篇laravel实现按月或天或小时统计mysql数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
如果你增加 MONTH、YEAR_MONTH 或 YEAR,并且结果日期的天比新月份的最大天数还大,那么它将被调整到新月份的最大天数: mysql> SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH); -> 1998-02-28 注意,上面的例子...