1
votes

Mise à jour d'une table en fonction d'une valeur d'horodatage dans la table

J'ai une base de données MySQL utilisant phpmyadmin. J'ai une table composée d'un ID (entier), d'un état (entier) et d'une date (horodatage).

Par exemple:

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

Je souhaite modifier la valeur de l'état 1 en 2 lorsque SYSDATE atteint l'enregistrement de date. Comment puis-je faire cela?

Merci :)


0 commentaires

4 Réponses :


1
votes

Essayez cette option:

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

Cela suppose que votre colonne Date ne stocke en fait que des dates. S'il stocke des horodatages et que vous ne souhaitez marquer que lorsque l'horodatage actuel dépasse la colonne Date , utilisez à la place SYSDATE () :

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


0 commentaires

1
votes

Vous pouvez utiliser

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


0 commentaires

1
votes

Vous pouvez:

  1. Créez un événement sur votre base de données et exécuter la requête UPDATE.

ou

  1. Créez une tâche CRON pour exécuter un fichier PHP spécifique sur votre serveur où sera votre requête UPDATE.

Et paramétrez-les pour qu'ils s'exécutent, par exemple pour tous les jours.


0 commentaires

0
votes

Essayez ceci

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

OU

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


0 commentaires