PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Hébergement serveur > ms.public.fr.sqlserver > critères mois et année d'une date
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
critères mois et année d'une date

Réponse
 
LinkBack Outils de la discussion
Vieux 22/08/2007, 10h24   #1
ben
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut critères mois et année d'une date

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
Vieux 22/08/2007, 10h38   #2
Fred.M.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut RE: critères mois et année d'une date

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
Vieux 22/08/2007, 11h58   #3
ben
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut RE: critères mois et année d'une date

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
Vieux 22/08/2007, 12h06   #4
Fred.M.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut RE: critères mois et année d'une date

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
Vieux 22/08/2007, 14h18   #5
ben
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut RE: critères mois et année d'une date

oui fred tu as raison cependant dans le cas que j'ennonce il faut
impérativement travailler avec le mois , j'ai jetté un oeil sur la fonction
que tu préconise, la question que je me pose c si je peux utiliser cette
fonction simultanement pour le mois et l'année exemple :

where datefac bettwen datepart(mm,madatedebut ) and datepart(mm,madatefin)
and between datepart(yy,madatedebut ) and datepart(yy,madatefin)

je vais essayer


"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
Vieux 22/08/2007, 15h12   #6
Patrice
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: critères mois et année d'une date

Je ne vois d'où vient cette obligation. Ce que veux dire Fred c'est que
entre juin et août c'est entre le 1er jour de juin et le dernier d'août ce
qui sera sans doute plus efficace. Si le pb est de trouver le dernier jour
d'un mois. Il suffira de supprimer 1 au 1er jour du mois suivant.


"ben" <ben@discussions.microsoft.com> a écrit dans le message de news:
1A00312E-80C2-46D1-9FA6-4A35E4F3B3DD@microsoft.com...
> oui fred tu as raison cependant dans le cas que j'ennonce il faut
> impérativement travailler avec le mois , j'ai jetté un oeil sur la
> fonction
> que tu préconise, la question que je me pose c si je peux utiliser cette
> fonction simultanement pour le mois et l'année exemple :
>
> where datefac bettwen datepart(mm,madatedebut ) and datepart(mm,madatefin)
> and between datepart(yy,madatedebut ) and datepart(yy,madatefin)
>
> je vais essayer
>
>
> "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
Vieux 22/08/2007, 16h56   #7
ben
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut RE: critères mois et année d'une date

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
Vieux 22/08/2007, 20h20   #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
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 06h28.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,17724 seconds with 16 queries