MySQL工作笔记-检索出某一时间段中的数据,并更新

目录

 

 

概念

演示


 

概念

这里我就直接举一个栗子,如何用update和select把学生表中,距离现在到入学时期4年后的学生,标记为已毕业

也就是:现在 - 入学 > 4年 标记为毕业!

这里有2个知识点:

Mysql中有一个NOW()的函数是获取当前时间,也有一个datetime这个数据类型,这两个可以直接相减;

UNIX_TIMESTAMP这个函数可以直接把datetime换成时间戳;

 

这里还有一个知识点:

MySQL工作笔记-检索出某一时间段中的数据,并更新

不能select某表的数据再update,这是不允许的,这里可以再套一个select 再取个别名,即可,下面演示将会给出

 

演示

表结构如下:

MySQL工作笔记-检索出某一时间段中的数据,并更新

表内容如下:

MySQL工作笔记-检索出某一时间段中的数据,并更新

现在是2019年4月18日 15:21:58;把 现在 - joinData > 4年的pastDue设置为1;

SQL如下:

UPDATE demo SET demo.pastDue=1 WHERE demo.id IN(SELECT tempDemo.id FROM(SELECT * FROM demo WHERE UNIX_TIMESTAMP(NOW())- UNIX_TIMESTAMP(joinData) > 31536000 * 4) AS tempDemo)

运行截图如下:

MySQL工作笔记-检索出某一时间段中的数据,并更新

这里我把时间改成2025年:

MySQL工作笔记-检索出某一时间段中的数据,并更新

再运行下:

MySQL工作笔记-检索出某一时间段中的数据,并更新

Mysql还是很强大的哈