Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3047 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [resolu]pb requete sql sur des champs date et time

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu]pb requete sql sur des champs date et time

n°1288101
wamdk
Posté le 20-01-2006 à 10:16:53  profilanswer
 

bonjour,
je cherche quelqu'un pour m'aider à faire une requête mysql en php:
 
j'ai 2 champs "jour" au format date et "heure" au format time
je veux afficher les lignes entre une date de début et une date de fin, avec la date de début qui commence à une heure supérieure à 5 heures:
 
voici ma requete qui plante
 
$req=select jour, heure from $table where jour (between $date1 and $date2) and heure >'05:00:00'
 
ça me renvoie TOUTES les lignes qui sont supérieures à 5h, alors que je voudrais que ça se fasse que sur le premier jour... :??:


Message édité par wamdk le 23-01-2006 à 19:46:44
mood
Publicité
Posté le 20-01-2006 à 10:16:53  profilanswer
 

n°1288169
skeye
Posté le 20-01-2006 à 11:23:09  profilanswer
 

Ceci n'est pas une requête, ceci est du code PHP.
Affiche la requête générée et colle la ici, et donne nous le type de tes champs jour et heure dans la base.


---------------
Can't buy what I want because it's free -
n°1288224
wamdk
Posté le 20-01-2006 à 12:07:59  profilanswer
 

SELECT jour,heure FROM donnees where (jour between '2005-01-12' and '2005-01-20') and heure>'05:00:00'
 
jour est de type date, heure est de type time

n°1288259
skeye
Posté le 20-01-2006 à 12:49:20  profilanswer
 

...et ça te retourne pas tous les jours entre le 12 et le 20 janvier? :??:


---------------
Can't buy what I want because it's free -
n°1288360
wamdk
Posté le 20-01-2006 à 15:19:40  profilanswer
 

ça me retourne bien tous les jours, mais chaque jour est amputé des heures 00:00:00 à 04:00:00, alors que je voudrais que ça ne se fasse que sur le premier jour !

n°1288369
skeye
Posté le 20-01-2006 à 15:26:45  profilanswer
 

euh ben là c'est pas ce que tu lui as demandé...;)
Là tu lui as demandé de te retourner tous les couples (jour, heure) qui vérifient les conditions date1<jour<date2 ET heure>5:00:00 [:skeye]
 
Ton résultat est donc conforme à la requête...;)
 
Ce que tu veux c'est plutot les couples (jour, heure) pour lesquels
(jour>=date1 ET heure>5:00:00) ET jour <= date2.
Je te laisse écrire ça en SQL... ;)


---------------
Can't buy what I want because it's free -
n°1288846
wamdk
Posté le 21-01-2006 à 12:15:28  profilanswer
 

SELECT jour,heure FROM donnees where (jour>='2005-01-13' and heure>'05:00')and jour<='2005-01-20' order by jour
 
meme résultat, toutes les lignes commencent à plus de 5h00  :fou: ...


Message édité par wamdk le 21-01-2006 à 12:17:00
n°1288849
skeye
Posté le 21-01-2006 à 12:19:26  profilanswer
 

ah ben oui, les parenthèses servent à rien, quand ya que des ET...je les avais mises que pour te faire comprendre qu'il fallait bien différencier les 2 parties...ça demande un peu plus de réflexion que de la traduction directe...;)
 
Tu t'en sortiras mieux avec une intersection...;)


Message édité par skeye le 21-01-2006 à 12:20:27

---------------
Can't buy what I want because it's free -
n°1290450
wamdk
Posté le 23-01-2006 à 19:47:50  profilanswer
 

Ca y est :) Je l'ai fait avec union, je pense que c'est la meilleure méthode;)
SELECT $champs FROM $table where jour='$datedebut' and heure>'$val_heure' union SELECT $champs FROM $table where jour>'$datedebut' and jour<='$datefin'"


Message édité par wamdk le 23-01-2006 à 19:51:05
n°1290505
skeye
Posté le 23-01-2006 à 21:18:33  profilanswer
 

euh non.
Avec une union tu vas en avoir de trop.[:urd]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 23-01-2006 à 21:18:33  profilanswer
 

n°1290534
wamdk
Posté le 23-01-2006 à 22:27:28  profilanswer
 

bah non, j'ai vérifié...
lis bien ma requête, elle semble d'une logique implacable

n°1290547
skeye
Posté le 23-01-2006 à 22:43:43  profilanswer
 

mal lu, en effet...;)


---------------
Can't buy what I want because it's free -
n°1290550
Beegee
Posté le 23-01-2006 à 22:49:50  profilanswer
 

SELECT $champs FROM $table where jour='$datedebut' and heure>'$val_heure' union SELECT $champs FROM $table where jour>'$datedebut' and jour<='$datefin'
 
équivaut à
 
SELECT $champs
FROM $table
WHERE (jour='$datedebut' and heure>'$val_heure')
OR (jour>'$datedebut' and jour<='$datefin')
 
:)

n°1290646
skeye
Posté le 24-01-2006 à 07:09:56  profilanswer
 

Exactement. :jap:
D'ailleurs je ne sais plus trop ce à quoi je pensais comme intersection...[:chrisbk]


Message édité par skeye le 24-01-2006 à 07:12:55

---------------
Can't buy what I want because it's free -
n°1290656
wamdk
Posté le 24-01-2006 à 08:36:35  profilanswer
 

est ce que la solution de Beegee est plus rapide ???

n°1290658
skeye
Posté le 24-01-2006 à 08:39:43  profilanswer
 

A priori, oui.


---------------
Can't buy what I want because it's free -
n°1290672
wamdk
Posté le 24-01-2006 à 09:28:37  profilanswer
 

Merci, j'adopte

n°1290807
Beegee
Posté le 24-01-2006 à 12:01:22  profilanswer
 

Pas certain que ce soit plus rapide (suivant les SGBD, il fait comme l'union ou pas :) ), mais au moins c'est un peu plus lisible ;)

n°1290818
skeye
Posté le 24-01-2006 à 12:14:44  profilanswer
 

Beegee a écrit :

Pas certain que ce soit plus rapide (suivant les SGBD, il fait comme l'union ou pas :) ), mais au moins c'est un peu plus lisible ;)


 
Je dirais qu'au pire c'est aussi rapide...;)


---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [resolu]pb requete sql sur des champs date et time

 

Sujets relatifs
[résolu] Sécurité base de données avec PHP[SQL] Dupliquer un enregistrement en précisant un des champs
[resolu]methode post vers une autre frame[SQL] Requête pour obtenir les valeurs présentes dans 1 seule table
Une requête SQl avec concaténation[résolu][CSS] Probléme avec... FF !
video streaming avec WMP et Quick timeimages aliasées avec la librairie GD2 [résolu]
Erreur de requete et formulaire[RESOLU]erreur a l'affichage de mes pages?????
Plus de sujets relatifs à : [resolu]pb requete sql sur des champs date et time


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR