Problme de selection de date

Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
-
Messages postés
114
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
17 octobre 2006
-
bonjour,
j'aimerais pouvoir simplement faire des comparaisons sur le champ date d'un smalldatetime
si une telle fonction existe merci de me le signaler
J'aimerais savoir comment faire:
day(smalldatetime1)=day(smalldatetime2)
and month(smalldatetime1)=month(smalldatetime2)
and year(smalldatetime1)=year(smalldatetime2)
d'un seul coup en fait

(j'aipas trouvé de fonction integree le faisant directement donc j'ai essayé de creer la mienne)

 create function meme_date(
 @date1 datetime,
 @date2 datetime
 )
 returns bit
 as
 begin
 if ( day(@date1)=day(@date2)
 and month(@date1)=month(@date2)
 and year(@date1)=year(@date2)
 )
--then
 return 1
 else
 return 0
 end
 go

par contre il doit y avoir une erreur dans ma syntaxe car je n'arrive pas aenregistrer cette fonction

ou sinon si quelqu'un sait comment creer une fonction dateof(@date)

qui ne renvoie que le champ date d'une datetime cela serait tres utile egalement

merci

3 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Salut

Je crois que tu compliques la vie

create function meme_date(
@date1 datetime,
@date2 datetime
)
returns bit
as
begin
return @date1 = @date2
END

Et encore plus simple
IF @date1 = @date2 THEN

Je ne comprends pas trop ton probleme

Sinon tu as les fonctions temporelles qui exsite
http://fadace.developpez.com/sgbdcmp/fonctions/#temporel
et
sqlpro.developpez.com


Pour info je crois que dans ton tsql il manque un begin apres le else.

Voila
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
je peux pas faire @date1=@date2 parce que leur partie heure n'est pas la meme, je n'aurais donc pas le resultat voulu
Messages postés
114
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
17 octobre 2006

crilun

Si tu es en SQL server ceci te renverras uniquement la date au format jj/mm/aaaa sous forme de chaine de caractere
tu peut donc faire ton test a partir de ceci
CONVERT(VARCHAR(10),getdate(),103)