Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
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 28/12/2011, 01h39   #1
Nouveau Membre du Club
 
Homme Alf Cedano
Inscription : septembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Homme Alf Cedano
Localisation : France, Cher (Centre)

Informations forums :
Inscription : septembre 2010
Messages : 71
Points : 30
Points : 30
Par défaut Impossible filtrer requête entre deux dates

Bonjour à tous.
Je suis perdu dans quelque chose tout bête, je cherche partout sans trouver une réponse.

Depuis un projet ADP Access 2007 je voudrais filtrer une requête selon deux dates.
Si j'ai le code suivant:

Code :
1
2
3
4
SELECT FechaM, IdDirPost,  DirPostNum 
FROM qryLettreM  
WHERE [FechaM] >= CAST ('11/06/2011' AS Date) 
AND [FechaM] <= CAST ('06/08/2011' AS Date)
Le valeurs de la date du 06/08/2011 n’apparaissent pas dans ma requête.
Si je mets un jour de plus: 07/08/2011 les valeurs du 6 août apparaissent.

J'essaie aussi avec CONVERT, et c'est pareil:

Code :
1
2
3
4
SELECT FechaM, IdDirPost,  DirPostNum 
FROM qryLettreM 
WHERE  FechaM => Convert(DateTime, '11/06/2011', 102) 
AND  [FechaM] <= Convert(DateTime,'06/08/2011', 102)
Dans ma table, la colonne FechaM est du type DateTime, je me sers aussi des heures dans cette colonne, mais pour cette requête c'est seulement la date qui m’intéresse.

Je vous remercie d'avance si pouvez m'éclairer.
alfhcg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 09h30   #2
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 725
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 725
Points : 6 849
Points : 6 849
Bonjour,

Code :
1
2
3
SELECT FechaM, IdDirPost,  DirPostNum 
FROM qryLettreM  
WHERE [FechaM] BETWEEN '20110611 00:00:00' AND '20110806 23:59:59'
++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 10h15   #3
Nouveau Membre du Club
 
Homme Alf Cedano
Inscription : septembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Homme Alf Cedano
Localisation : France, Cher (Centre)

Informations forums :
Inscription : septembre 2010
Messages : 71
Points : 30
Points : 30
Voilà, j'étais sur que c'était bête de ma part.
Merci beaucoup.
Résolu!
alfhcg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 01h02   #4
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 670
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 670
Points : 8 732
Points : 8 732
Bonjour,

Citation:
Envoyé par mikedavem
Code :
1
2
3
SELECT FechaM, IdDirPost,  DirPostNum 
FROM qryLettreM  
WHERE [FechaM] BETWEEN '20110611 00:00:00' AND '20110806 23:59:59'
On doit même pouvoir écrire :

Code :
1
2
3
SELECT FechaM, IdDirPost,  DirPostNum 
FROM qryLettreM  
WHERE FechaM BETWEEN '2011061' AND '20110807'


@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 10h10   #5
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 725
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 725
Points : 6 849
Points : 6 849
Tout dépend si on veut avoir les dates concernant le 07/08/2011 00:00:00 comprisent dans le résultat ou non mais je crois que dans le contexte du post ce n'était pas le cas.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2011, 00h06   #6
Nouveau Membre du Club
 
Homme Alf Cedano
Inscription : septembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Homme Alf Cedano
Localisation : France, Cher (Centre)

Informations forums :
Inscription : septembre 2010
Messages : 71
Points : 30
Points : 30
En effet, ce sont les dates jusqu'au 06/08/2011 qui m’intéressent. Cette valeur je la prends d'une combobox et je la passe comme critère à ma requête.
alfhcg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2011, 06h21   #7
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 670
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 670
Points : 8 732
Points : 8 732
Bonjour,

La valeur '20110807' sera automatiquement transtypée en datetime par SQL Server en la valeur 2011-08-07 00:00:00.000.
Si on veut exclure cette date, on peut écrire :

Code :
1
2
3
4
SELECT FechaM, IdDirPost,  DirPostNum 
FROM qryLettreM  
WHERE FechaM >= '2011061'
AND FechaM < '20110807'


@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2011, 09h18   #8
Nouveau Membre du Club
 
Homme Alf Cedano
Inscription : septembre 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Homme Alf Cedano
Localisation : France, Cher (Centre)

Informations forums :
Inscription : septembre 2010
Messages : 71
Points : 30
Points : 30
Le résultat est le même, mais lorsque je prends la date depuis une combobox, il est plus simple d'ajouter "23:59:59" à la chaîne de la date, que l'augmenter d'un jour pour avoir: "07/08/2011 00:00:00".
alfhcg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 17h02   #9
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 670
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 670
Points : 8 732
Points : 8 732
Parce que vous manipulez la chaîne qui représente la date, pas la date

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket 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 02h04.


 
 
 
 
Partenaires

Hébergement Web