-
requete sur date
Bonjour,
j'ai un champ "periode" qui a été crée en varchar et qui est constitué ainsi : mm-yyyy
Je souhaiterais pouvoir faire des requêtes dessus du style select... where periode>04-1997.
Pour l'instant, je n'ai pas d'erreur généré mais par contre il me donnera en résultat une période telle que 05-1996.
Merci de bien vouloir m'aider...:oops:
-
Code:
where periode > convert(datetime, "31-" + VotreDate)
-
Attention toutefois à l'ordre jour/mois ainsi qu'aux mois qui n'ont pas 31 jours...:)
-
c'est normal le résultat vu que période est en varchar donc il trie par ordre croissant.
-
cette fonction ne fonctionne pas. elle me parait bizarre quand même...
Je ne comprends pas comment elle peut marcher puisque mon champ periode est de la forme mm-yyyy et qu'on lui fait comparer avec des critères du style 31/04/1997!!!
mes champs période sont de la forme 04-1997 en varchar. Mes requetes sont du style SELECT ... WHERE periode<05-1996.
Cette requete là me donner comme résultat 04-1997. Je comprends bien le pourquoi de ce résultat mais je ne parviens pas à coder la bonne requete.
Auriez-vous une idée?
-
DECLARE @test TABLE (id int, mydate varchar(50))
INSERT INTO @test SELECT 1, '01-2007'
INSERT INTO @test SELECT 2, '03-2007'
INSERT INTO @test SELECT 3, '02-2007'
INSERT INTO @test SELECT 4, '05-2007'
INSERT INTO @test SELECT 5, '04-2007'
SELECT id
FROM @test
WHERE CAST( RIGHT(mydate, 4) + '-' + LEFT(mydate,2) + '-01' AS datetime) > GETDATE()