最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
利用MYSQL来实现连续签到功能 断签一天从头开始
时间:2017-05-29 编辑:简简单单 来源:一聚教程网
1,创建测试表
代码如下 | 复制代码 |
CREATETABLE`testsign` ( `userid`int(5)DEFAULTNULL, `username`varchar(20)DEFAULTNULL, `signtime`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP, `type`int(1)DEFAULTƆ'COMMENT'为0表示签到数据,1表示签到日期字典数据' ) ENGINE=InnoDBDEFAULTCHARSET=utf8 |
2,插入测试数据,签到时间为5.21号到6.5号,可以写活,但是要写存储过程,我比较懒,重点应该是取签到数据的代码,就是第三点,呵呵
代码如下 | 复制代码 |
insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-05-21 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-05-22 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-05-23 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-05-24 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-05-25 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-05-26 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-05-27 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-05-28 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-05-29 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-05-30 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-05-31 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-06-01 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-06-02 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-06-03 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-06-04 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','字典',-06-05 00:00:00',Ƈ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','吴小双签到数据',-05-21 00:00:00',Ɔ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','吴小双签到数据',-05-22 00:00:00',Ɔ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','吴小双签到数据',-05-23 00:00:00',Ɔ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','吴小双签到数据',-05-24 00:00:00',Ɔ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','吴小双签到数据',-05-25 00:00:00',Ɔ'); insertinto`testsign` (`userid`, `username`, `signtime`, `type`)values(�','吴小双签到数据',-05-26 00:00:00',Ɔ'); |
3,查询连续签到数据
代码如下 | 复制代码 |
SELECT*FROMtestsignWHERETYPE=0AND DATE_FORMAT(signtime,'%Y%m%d')>( SELECTIFNULL(MAX(DATE_FORMAT(signtime,'%Y%m%d')),"20170520")FROMtestsignWHERETYPE=1 ANDDATE_FORMAT(signtime,'%Y%m%d')<=DATE_ADD(NOW(), INTERVAL -1DAY) ANDDATE_FORMAT(signtime,'%Y%m%d')NOTIN( SELECTDATE_FORMAT(signtime,'%Y%m%d')FROMtestsignWHERETYPE=0ANDuserid=800675 ) ) ANDDATE_FORMAT(signtime,'%Y%m%d')<=�' ANDuserid=800675 |
未断数据
删掉23号数据,从24号开始算,连续签三天
以上所述是小编给大家介绍的MYSQL实现连续签到功能断签一天从头开始,希望对大家有所帮助。在此也非常感谢大家对本网站的支持!
-
上一个: mysql跨库关联查询方法的代码实例
-
下一个: Oracle怎么实现跨库查询
相关文章
- MySQL登录、访问及退出操作解析 10-18
- sql语句 update字段null不能用is null问题解析 09-28
- SQL Server ISNULL 不生效原因及解决分析 09-28
- 关于if exists的用法及说明分析 09-28
- Access数据库日常维护方法 09-28
- Oracle 删除大量表记录操作介绍 09-27