Datetime et int SQL

nicobett -  
l.dellacherie Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

voila je dois effectuer une requette du type:
select * from history where wlogdate<21/11/2011

wlogdate est de type: datetime

sauf qu'en fait, mon script va être lancé automatiquement (tous les 3 mois par exemple).
J'ai donc avant:
declare @annee int, @mois int, @jour int

set @jour = DATEPART(day, GETDATE())
set @annee = DATEPART(year, GETDATE())
set @mois = DATEPART(month, GETDATE())

je calcul ensuite la valeur de @jour,@mois et @annee. J'ai donc 3 entiers: le mois, le jour, l'annee...


par contre j'ai donc des entiers, et je ne sais pas comment faire pour ma commande de select...

J'ai essayé les requetes ci dessous sans succès:
select * from history where wlogdate<@jour+'/'+@mois+'/'+@annee
select * from history where wlogdate<CAST(@annee+'-'+@mois+'-'+@jour AS DATETIME)
j'ai essayé en utilisant également une variable @date @date datetime


A voir également:

1 réponse

l.dellacherie Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   2
 
salut, je crois que tu as pris une bonne piste en passant par paramètre, j'ai juste pas compris pourquoi 3 paramètres

car tu aurais pu faire
select... where wlogdate < getdate()

mais si cependant tu veux travailler comme celà tu dois utiliser la fonction convert. Car il possible que la date que tu donne à SQL est au format Fr alors qu'il l'attend sous le format EN.

celà devient donc : select ... where wlogdate < convert(@jour + '/' + @mois + '/' + @annee, 103)

Cependant la technique ici ne marche que si @jour est de type char(2) idem pour mois et annee.
0