visualstar
Messages postés18Date d'inscriptionlundi 18 février 2002StatutMembreDernière intervention17 février 2005
-
31 janv. 2004 à 16:36
djew
Messages postés30Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention27 octobre 2010
-
4 mai 2005 à 10:58
Comment fait on pour comparer deux dates dans une chaîne sql ?
Voici le code qu'on utilise :
SELECT * FROM Calendrier WHERE DateEvent >'" & DateLendemain & "' ORDER BY DateEvent, HeureEvent"
DateEvent vient d'un champ de la base access (format Date/Heure) et DateLendemain est une date du jour + 1 et elle marche.
Dès qu'on utilise un < ou >, le SELECT retourne n'importe quoi. Mais avec le =, ça fonctionne.
cs_fabrice69
Messages postés1765Date d'inscriptionjeudi 12 octobre 2000StatutMembreDernière intervention11 décembre 20135 1 févr. 2004 à 20:03
Il faut convertir ta variable de date en SQL Standard afin que le moteur access ne fasse pas de confusion entre les jours et les mois. Et ainsi d'être sur que ta comparaison se fait de la bonne facon.
Pour rappel, en SQL standard, une date s'écrit :
- JJ-MM-AAAA HH:mm:SS
djew
Messages postés30Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention27 octobre 2010 4 mai 2005 à 10:58
Salut visualstar, j'ai été confronté au même probleme que toi, il faut d'abord que tu convertisses ta date au format anglais. Pour cela, utilises les deux fonctions de Nix:/forum.v2.aspx?ID=81665 <%
Function AngDate(LaDate)
AngDate = VerifDix(Month(LaDate)) & "/" & VerifDix(Day(LaDate)) & "/" & Year(LaDate)
End Function
Function VerifDix(LeChiffre)
If LeChiffre < 10 Then
VerifDix = "0" & LeChiffre
Else
VerifDix = LeChiffre
End If
End Function
%>
Ma Date en francais 01/06/2001 est en anglais : <%=AngDate("01/06/2001")%>
Ensuite ça marche niquel. Je reprends ton exemple et ça donne:
"SELECT * FROM Calendrier WHERE DateEvent >#" & AngDate(
DateLendemain) & "# ORDER BY DateEvent, HeureEvent"