Requete avec condition date

Eléphant du PHP | 297 Messages

19 oct. 2022, 03:33

Bonjour,
J'ai vraiment tout essayé durant des heures avant de venir demander d el'aide.
Je souhaite effectuer une requete avec une condition sur une opération de date.
J'ai dans ma table une colonne date, et une colonne durée.
La date est sous format : 2021-04-10
Et la durée: 24

Je souhaite filtrer dans ma requete les lignes dont la date + la durée dépasse la date d'aujourd'hui.

Merci pour votre aide.

Mammouth du PHP | 2703 Messages

19 oct. 2022, 07:18

qu'avez-vous essayé ?

Eléphant du PHP | 297 Messages

19 oct. 2022, 12:47

Bonjour,
Ma dernière tentative:

Code : Tout sélectionner

$aujourdhui = date('Y-m-d'); INNER JOIN table1 ON table2.code_circuit = table1.code_circuit WHERE nom ='$prenom' AND (table1.date < '$aujourdhui' ) AND ('$aujourdhui' - table1.date) < 30 AND ('$aujourdhui' - table1.date) > 0) AND version = (SELECT MAX(version)

Eléphant du PHP | 297 Messages

19 oct. 2022, 13:05

J'ai aussi dasn ma table1, une durée.
J'avais essayé d'ajouter la durée à ma date et que le total ne dèpasse pas la date d'aujourd'hui, mais sans succes.

Code : Tout sélectionner

(table1.date + table1.duree) < '$aujourdhui')

Mammouth du PHP | 2703 Messages

19 oct. 2022, 13:11

que donne ?
select table1.date + table1.duree from table1

Eléphant du PHP | 297 Messages

20 oct. 2022, 00:07

Bonjour,
Merci pour votre proposition. J'ai déja un 'FROM'. Je ne vous avais pas noté la requête complete et complexe, sachant qu'elle fonctionne, jusqu'a ce que je rajoute cette condition souhaitée.

Code : Tout sélectionner

$aujourdhui = date('Y-m-d'); mysqli_select_db($connect, $database_connect); $query_base_versions5 = " SELECT table2.code_circuit, table2.date, table2.version, table2.date_envoi, table2.etat, table2.relance, table2.nbr_jour, table1.code_circuit, table1.code_client, table1.nom_conseiller, table1.nom_production, table1.date_circuit, table1.duree_circuit, table1.etat_voyage, table1.etat_com FROM table2 INNER JOIN table1 ON table2.code_circuit = table1.code_circuit WHERE nom_conseiller ='$prenom' AND (table1.date_circuit > '$aujourdhui' ) AND version = (SELECT MAX(version) FROM table2 a WHERE a.code_circuit = table1.code_circuit AND table1.etat_voyage = 'Confirmé') ORDER BY date_circuit ASC LIMIT $offset5, $total_records_per_page5"; $base_versions5 = mysqli_query($connectchilivoyage, $query_base_versions5) or die(mysqli_error()); // $row_base_versions5 = mysqli_fetch_assoc($base_versions5); $totalRows_base_versions5 = mysqli_num_rows($base_versions5);
Je souhaite remplacer dans cette condition le filtre qui ne retient que les lignes avec une date supérieur a aujourd'hui

Code : Tout sélectionner

AND (table1.date_circuit > '$aujourdhui' )
par un filtre table1.date_circuit + table1.duree_circuit dont le résultat est une date supérieur à la date d'aujourd'hui.

Mammouth du PHP | 2703 Messages

20 oct. 2022, 00:14

cela ne me dit pas si cette requête exécutée dans phpmyadmin retourne bien ce que vous pensez qu'elle retourne :
select table1.date + table1.duree from table1

Eléphant du PHP | 297 Messages

20 oct. 2022, 15:16

Il est possible d'effectuer une opération dans un select ?
select table1.date + table1.duree from table1

Mammouth du PHP | 2703 Messages

20 oct. 2022, 19:44

vous avez essayé dans phpmyadmin ?

Eléphant du PHP | 297 Messages

23 oct. 2022, 13:07

vous avez essayé dans phpmyadmin ?
Non.
J'ai trouvé avec date_add(current_date(), interval duree day).
Merci quand mÊme.