Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/01/2011, 10h38   #1
Invité régulier
 
Inscription : juin 2010
Messages : 63
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 63
Points : 9
Points : 9
Par défaut Problème de requêtes avec deux dates

Bonjour à tous !
J'ai une table mysql dans laquelle il y 4 colonnes date_deb(date),heure_deb(time),date_fin(date),heure_fin(time).Je veux selectionner par exemple entre 2011-01-07 09:00:00 et 2011-01-11 18:00:00.

J'ai ecrit :
Code :
1
2
3
 
DELETE FROM "xxx"  WHERE date_deb >=  STR_TO_DATE('" + e.Item.Cells[5].Text + "','%d/%m/%Y') AND heure_deb >= '" + e.Item.Cells[3].Text + 
"' AND date_fin <= STR_TO_DATE('" + e.Item.Cells[6].Text + "','%d/%m/%Y') AND heure_fin <= '" + e.Item.Cells[4].Text + "')
Mais ça marche pas.
Quelq'un peut m'aider ?
giraud vias est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 14h01   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour,

En effet, prenons par exemple la date
2011-01-08 07:00:00
Elle est bien comprise entre 2011-01-07 09:00:00 et 2011-01-11 18:00:00, mais ne satisfait pas la condition suivante dans votre requete :
heure_deb >= 9:00 !

Il faut donc traiter a part les cas d'égalité dans la colonne date, et seulement dans ce cas comparer les heures

faire quelque chose de la sorte :
Code sql :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
DELETE FROM "xxx"  
WHERE (
  date_deb >  STR_TO_DATE('" + e.Item.Cells[5].Text + "','%d/%m/%Y') 
  OR (
    date_deb =  STR_TO_DATE('" + e.Item.Cells[5].Text + "','%d/%m/%Y')
    AND 
    heure_deb >= '" + e.Item.Cells[3].Text + "' 
    )
  )
AND (
  date_fin < STR_TO_DATE('" + e.Item.Cells[6].Text + "','%d/%m/%Y') 
  OR (
    date_fin = STR_TO_DATE('" + e.Item.Cells[6].Text + "','%d/%m/%Y') 
    AND 
    heure_fin <= '" + e.Item.Cells[4].Text + "'
    )
  )
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h35.


 
 
 
 
Partenaires

Hébergement Web