Tu peux utiliser DateDiff() qui renvoie un entier signé indiquant la différence entre la partie des deux dates que tu compares.
-------------------------------
Réponse au message :
-------------------------------
je ne sais pas si la requete est bonne mais je suis sur que tu ne peux pas faire " downloadsys-4 car il y aura une erreur d'imcompatibilité car downloadsys est sous format(dd/mm/yyyy) dans ma table. donc maintenant???
merci mon ami
ps: puis je utiliser dateadd dans une requete...
-------------------------------
Réponse au message :
-------------------------------
T'as sûrement pas oublié les guillemets, mais voici comment j'écrirais ta requête:
"select * from matable where downloadsys between" & str$(fix(cdbl(now))) & " and (downloadsys-4);"
Aussi, au cas où ça t'intéresse, j'ai ce code pour calculer le nombre de secondes depuis le 01/01/2000, il te suffirait de changer la variable BaseAn et p-ê de retravailler la fct un peu pour spécifier jour et mois.
Public Function TimeStamp() As Double ' ' Calcule et retourne le nombre de secondes écoulées ' depuis le 1er Janvier 2000 ' ' Retourne -32768 SI la date de l'ordinateur est au ' moins une seconde avant celle de référence. ' ' ' Il est à noter que traditionnellement, 1/1/1980 est utilisé ' et plus rarement 1/1/1990, je prend le 1/1/2000 arbitrairement ' ' Plus tard p-ê modifier pour au moins pouvoir donner l'année de base, ' optionnellement encore plus tard ajouter mois et jour de cette année ' de base. Ex: X = TimeStamp(2000, 1, 1) -> 1er Jan 2000 est la base. ' Dim dtLclDate As Date Dim iDiff1 As Integer ' Différence entre l'année de référence et celle en cours Dim iCmpt As Integer Dim iNowTimer As Long Const UnJour = 86400 ' Nombre de secondes dans un jour Const TrenteJours = 2592000 ' Nombre de secondes dans un mois de trente jours Const SecondesAn = 31536000 ' Nombre de secondes dans une année Const SecondesAnBi = 31622400 ' Nombre de secondes dans une année bissextile Const BaseAn = 2000 ' L'année de base utilisée TimeStamp = 0 ' Par principe dtLclDate = Now ' Date iNowTimer = Timer ' Durant l'exécution, on peux changer de jours alors on prend note tout de suite. iDiff1 = Year(dtLclDate) - BaseAn ' Si la date courante est avant la date de base erreur! If (iDiff1 < 0) Then TimeStamp = -32768 Exit Function End If 'Calcule les années complètées... iDiff1 = iDiff1 - 1 'Sinon calcule l'année en cours comme terminée! For iCmpt = 0 To iDiff1 If Bissextile(iCmpt + BaseAn) Then TimeStamp = TimeStamp + SecondesAnBi Else TimeStamp = TimeStamp + SecondesAn End If Next iCmpt 'Calcule les mois complétés... iDiff1 = Month(dtLclDate) - 1 For iCmpt = 1 To iDiff1 Select Case (iCmpt) Case 1, 3, 5, 7, 8, 10, 12 'En principe, on n'ira jamais jusqu'à 12 TimeStamp = TimeStamp + (TrenteJours + UnJour) '(31 * UnJour) Case 4, 6, 9, 11 TimeStamp = TimeStamp + TrenteJours '(30 * UnJour) Case 2 If Bissextile(Year(dtLclDate)) Then TimeStamp = TimeStamp + (TrenteJours - UnJour) '(29 * UnJour) Else TimeStamp = (TimeStamp + TrenteJours) - (UnJour * 2) '(28 * UnJour) End If ' Case Else End Select Next iCmpt 'Calcule les jours complétés... iDiff1 = Day(dtLclDate) - 1 TimeStamp = TimeStamp + (UnJour * iDiff1) 'Ajouter les secondes depuis minuit... TimeStamp = TimeStamp + iNowTimer
End Function
|
-------------------------------
Réponse au message :
-------------------------------
je travaille avec VB
between= sql
now()= date du jour en VB
downloadsys = le nom de mon champs contenant les dates
voila
je pense qu'il vaut mieux que je t'appelle sur ton portable
-------------------------------
Réponse au message :
-------------------------------
D'abord avec quel outil travailles-tu, je ne connais pas la fonction Downlaodsys(), ni les mots clés BETWEEN et NOW, tout ce que je peux te dire c'est que ce n'est pas du VB ni du SQL.
Je crois me souvenir que BETWEEN est de l'Access mais j'ai jamais voulu y toucher.
Monchamp est de quel type ??
Avec cela je peux essayer de t'aider !
-------------------------------
Réponse au message :
-------------------------------
peut etre que je suis bete
mais je dois exécuté ce type de requete:
select * from matable where downlaodsys(monchamp) between now and downlaodsys-4
mais ici il y a un erreur(imcompatible a cause de 4)
donc je sais pas
merci mon ami
-------------------------------
Réponse au message :
-------------------------------
En VB, une date est stocké en interne sous forme de double, il suffit donc de faire CDble(Date) pour obtenir la contrepartie.
Est-ce que cela répond à ta question ?
-------------------------------
Réponse au message :
-------------------------------
salut
quelle la fonction qui pemet de convertir une date en entier CAD ça me donne le nombre de jours
exemple en windev
datetoint(24/01/1979)= un entier qui me donne le nombre de jours écoulé. merci