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 21/11/2011, 16h44   #1
Membre régulier
 
Inscription : février 2007
Messages : 505
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 505
Points : 87
Points : 87
Par défaut Recherche entre 2 jours à 2 heures différentes

Bonjour,

je n'arrive pas à formuler ma requête MySQL,

je souhaite afficher le nombres d'enregistrement situer entre par exemple le 21-11-2011 à 8:00 et le 22-11-2011 à 8:00

voila ma requête mais la requête refuse de se lancer dans vb.net :
Code :
SELECT count(*) FROM ticket WHERE date BETWEEN ('21-11-2011' AND (heure > 08:00:00 )AND  '22-11-2011' AND (heure < 08:00:00 ))
vous voyez une erreur ?
gastoncs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 17h06   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Déjà, il y a une erreur sur l'écriture de l'heure qui doit être mise entre apostrophes et sur le format de la date qui est en standart SQL 'aaaa-mm-jj' mais même ainsi cela ne fonctionnera probablement pas avec BETWEEN qui ne travaille je pense que sur une colonne.

Essaie comme ceci :
Code :
1
2
3
SELECT count(*) 
FROM ticket 
WHERE CAST(CONCAT(`date`, ' ', heure) AS DATETIME) BETWEEN '2011-11-21 08:00:00' AND '2011-11-22 08:00:00'
Au passage, tu ne devrais pas appeler une colonne 'date' car c'est un mot réservé du langage SQL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 06h00   #3
Membre régulier
 
Inscription : février 2007
Messages : 505
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 505
Points : 87
Points : 87
Merci j'ai essayé ça fonctionne,
mais colonne possédé bien le nom datum pour date et heuro pour heure, et la date est bien au format américan 'aaaa-mm-jj'

voici la requête qui fonctionne comme ceci :
Code :
1
2
3
SELECT count(*) 
FROM ticket 
WHERE CAST(CONCAT(`datum`, ' ', heuro) AS DATETIME) BETWEEN '2011-11-13 08:00:00' AND '2011-11-14 08:00:00'
Mais le soucis apparait au moment ou je souhaite utiliser les variables date de début et date de fin qui sont défini par un label de ma fenetre (je tourne sous vb.net avec mysql.DOTnet)
et la ca ne fonctionne pas, pourtant voici ma requete :
(je pense que je devrais poster ceci sur le forum vb.net, qui a mon avis concerna plus ce sujet !)

Code :
cmd.CommandText = "SELECT count(*) FROM ticket WHERE CAST(CONCAT(datum, ' ' ,heuro) AS DATETIME) BETWEEN '" & Label5.Text & " 08:00:00' AND '" & Label8.Text & " 08:00:00'"
je vais essayer de trouver merci deja pour ton aide Cinephil
gastoncs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 14h23   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Tu as introduit des variables dans la requête. La première chose à faire est de vérifier le contenu de ces variables.
Si les dates sont exprimées au format Français jj/mm/aaaa, c'est sûr que ça ne fonctionnera pas.

Une bonne chose aussi, mais je ne sais pas comment on fait en vb.net : récupérer l'erreur éventuelle donnée par MySQL et l'afficher en débuggage pour savoir où elle se situe.
Effectivement, c'est plus du ressort du forum vb.net
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h58.


 
 
 
 
Partenaires

Hébergement Web