根据表中的时间戳值更新表

时间:2019-05-09 05:30:00

标签: mysql

我有一个使用phpmyadmin的MySQL数据库。 我有一个包含ID(整数),Status(整数)和Date(时间戳)的表。

例如:

-------------------------------------------
  ID   |    Status   |        Date        
-------------------------------------------
   1   |      1      | 2019-05-10 00:00:00
   2   |      1      | 2019-05-11 00:00:00
-------------------------------------------

我想在SYSDATE到达Date记录时将Status值从1更改为2。我该怎么办?

谢谢:)

4 个答案:

答案 0 :(得分:1)

尝试此选项:

UPDATE yourTable
SET Status = 2
WHERE CURDATE() >= Date AND Status = 1;

这假设您的Date列实际上仅存储日期。如果它存储时间戳,并且您只想在当前时间戳超过Date列时进行标记,则使用SYSDATE()代替:

UPDATE yourTable
SET Status = 2
WHERE SYSDATE() >= Date AND Status = 1;

答案 1 :(得分:1)

您可以使用

update  my_table  
set statys = 2 
where 
WHERE CURDATE() >= FROM_UNIXTIME(Date) 
AND Status = 1;

答案 2 :(得分:1)

您可以:

  1. 在数据库上创建一个event并运行UPDATE查询。

  1. 创建一个CRON job以便在服务器上运行特定的PHP文件,这将是您的UPDATE查询。

并将其设置为运行每天。

答案 3 :(得分:1)

尝试

Update tablename SET Status = 2 Where CURDATE() >= Date AND Status = 1;

OR

Update tablename SET Status = 2 Where Date >= NOW()  AND Status = 1;