Datetime et int SQL
nicobett
-
l.dellacherie Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Datetime et int SQL
- Logiciel sql - Télécharger - Bases de données
- Int converter - Télécharger - Bureautique
- Jointure sql ✓ - Forum MySQL
- Requete sql pix - Forum PHP
- Int main(void) ✓ - Forum C++
1 réponse
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.
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.