Ajout de +10 jours dans une date

sletouil Messages postés 2 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 27 octobre 2008 - 27 oct. 2008 à 11:43
sletouil Messages postés 2 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 27 octobre 2008 - 27 oct. 2008 à 16:08
Bonjour à tous,

Je bug sur une requête a la noix, voici ma requête :

SELECT info_id, date_modified, field_name, old_value, new_value
              FROM info_history_table
                          where date_modified like '%2008-10-%' 
                              and old_value like ('80') 
                              and new_value like '90'
                                                                  order by info_id asc;

Dans cette requête je souhaite voir apparaitre toutes les infos qui sont passer de la valeur 80 à 90 a la date de ce passage.

Ma question : je souhaite voir les infos qui ne sont pas supérieure a +10 jours de date_modified lors de ce passage? Savez-vous comment je peux faire?

Car la je suis bloqué et ne vois pas la solution qui est peut être toute simple.

Je vous remercie par avance de votre aide.

Stéph

2 réponses

fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
27 oct. 2008 à 15:05
salut

Utilise INVERTAL +10 DAY.
Ce que tu veux ne peux pas être fait en une seule requête, je pense.

Tu dois faire ta requete, puis en aire une autre avec le résultat de la 1ere.
Ex si ton enregistrement a retourné la date 2008-10-05 : (c'est du code MySQL qui est peut-être à adapter)

SELECT info_id, date_modified, field_name, old_value, new_value
              FROM info_history_table
                          where date_modified between '2008-10-05' and ('2008-10-05' + INTERVAL 10 DAY)
                              and old_value like ('80') 
                              and new_value like '90'
                                                                  order by info_id asc;
0
sletouil Messages postés 2 Date d'inscription lundi 27 octobre 2008 Statut Membre Dernière intervention 27 octobre 2008
27 oct. 2008 à 16:08
Dans un premier temps,
Merci de ta réponse.

Dans le second temps

j'ai fait cette requête

SELECT info_id, date_modified, field_name, old_value, new_value
              FROM info_history_table
                          where date_modified between '2008-10-01' and ('2008-10-01' + INTERVAL 10 DAY)
                              and old_value like ('80')
                              and new_value like '90'
                                                                  order by info_id asc;
voici le retour :

ERROR:  syntax error at or near "10"
LINE 3: ...ed between '2008-10-01' and ('2008-10-01' + INTERVAL 10 DAY)
                                                                ^



********** Erreur **********



ERROR: syntax error at or near "10"
État SQL :42601
Caractère : 204


Pensant que je pouvais l'adapter au contexte du mois et pour chaque jour entre 1 et 30(31), il ajoute 10 jours en corrigeant le 10 avec des simples cotes

SELECT info_id, date_modified, field_name, old_value, new_value
              FROM info_history_table
                          where date_modified between '2008-10-%' and ('2008-10-%' + INTERVAL '10' DAY)
                              and old_value like ('80')
                              and new_value like '90'
                                                                  order by info_id asc;

Le requeteur pgadmin me retourne l'info suivante.

ERROR:  invalid input syntax for type timestamp: "2008-10-%"


********** Erreur **********


ERROR: invalid input syntax for type timestamp: "2008-10-%"
État SQL :22007

Il prend pas en compte le % pour ce type de fonction.

Au départ je pensais que je pouvais rever d'une requete qui ressemblerait a cela :

select info_id, summary, date_submitted, field_id, "value"
  from info_bug_table
  inner join info_custom_field_string_table on info_custom_field_string_table.info_id = info_bug_table.id
  where date_submitted like '2008-10-%' and field_id in ('177','178') and "value" BETWEEN date_submitted and (date_submitted + INTERVAL '10' DAY) order by info_id asc

mais je crois que je peux continuer a rever car il ne me construit que le tableau sans valeurs. Je dois avoir un problème quelque part mais je ne vois pas ou exactement.
Merci pour ta réponnse c'est très gentil.

Stéph
0
Rejoignez-nous