Afficher un message
Vieux 22/08/2007, 19h20   #8
bruno reiter
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: critères mois et année d'une date

attention aux fonctions dans le where qui peuvent empêcher l'utilisation
d'un index sur la colonne date

where coldate between '20070501' and '20070531'
permet d'utiliser l'index
where year(coldate) = 2007 and month(coldate) = 5
ne permet pas

br

"ben" <ben@discussions.microsoft.com> wrote in message
news:5EEC8F1B-1CE9-4233-8819-BBFD676E24F6@microsoft.com...
> Re
> Je me suis inspiré de vos observation et en fait j'ai contourné le prb
> voila
> comment je fais :
>
> hypo de base : les enrgistrements compris entre le MaDateDebut et le
> MaDateFin
>
> 1 j'appel une fonction qui me calcul le nombre de jour qu'il y a dans la
> MaDateFin
>
> (trouver sur le web merci la toile)
>
>
>
>
>
> Public Function DaysInMonth(ByVal nMonth As Integer, ByVal nYear As
> Integer)
> As Integer
>
> DaysInMonth = Day(DateAdd("d", -1, DateAdd("m", 1, DateSerial(nYear,
> nMonth, 1))))
> nbjourmois = DaysInMonth
> End Function
>
>
> ensuite j'écris ceci dans la clause where
>
> Datefac between '" & "01/" & Right(MaDateDebut, 5) & "' AND '" &
> nbjourmois
> & "/" & Right(MadateFin, 5) & "'
>
> et puis voila merci à vous tous Fred et Pat @+
> "Fred.M." a écrit :
>
>> On en revient à la même chose : datefact étant de format date, il te faut
>> t'exprimer en date. Cela te donnera donc pour ton exemple :
>> ..WHERE datefact between '01/06/07' AND '31/08/07'
>>
>> Si tu veux vraiment jouer avec le mois et l'année tu peux utiliser la
>> fonction DatePart mais pour ton exemple c'est se compliquer la vie plus
>> qu'autre chose.
>> http://msdn2.microsoft.com/fr-fr/library/ms174420.aspx
>>
>> Fred.M.
>>
>> "ben" a écrit :
>>
>> > salut fred en fait d'un point de vu simpliste la requete serait comme
>> > ça
>> > where datefact between '06/07' and '08/07' autrement dit les
>> > enregistremensts compris entre juin 2007 et aout 2007.
>> >
>> >
>> > "Fred.M." a écrit :
>> >
>> > > Bonjour Ben,
>> > > Précises-tu dans ta clause Where l'année ?
>> > > Par ailleurs vérifie de même le format date US ou FR (dd/mm/yyyy)
>> > >
>> > > ex: ..WHERE MaDate Between '08/07/2007' AND '12/07/2007'
>> > >
>> > > Fred.M.
>> > >
>> > > "ben" a écrit :
>> > >
>> > > > bonjour à tous, j'ai une table qui contient des dates je souhaite
>> > > > faire une
>> > > > extraction en fonction du mois et de l'année, exemple
>> > > > les enregistrements compris entre le 08/07 et le 12/07, malgrés
>> > > > plusieurs
>> > > > tentatives je tombe toujours sur une insulte de SQL du type
>> > > > erreur de syntaxe lors de la conversion d'une chaine de caractère
>> > > > en type de
>> > > > donnée smalldatetime.
>> > > >
>> > > > je continu de plancher dessus mais j'avoue qu'un petit coup de
>> > > > pouce serait
>> > > > le bien venu.
>> > > > Merci et bonne journée à tous


  Réponse avec citation
 
Page generated in 0,05752 seconds with 9 queries