Format de la date retourné par dateAdd() ? [Résolu]

Signaler
Messages postés
65
Date d'inscription
mercredi 6 avril 2011
Statut
Membre
Dernière intervention
9 janvier 2012
-
aieeeuuuuu
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
-
Bonjour,

je travail sur MS SQL Server, et je souhaite exécuter des requêtes avec un WHERE sur la date ...

ce que je veux, c'est d'avoir les lignes qui ont la date = la date du mois dernier, sachant que les dates ont la format (YYYY,MM,JJ HH:MM:SS.mSmSmS) et que le jour est fixé sur 01.

j'ai utilisé cette méthode, mais je me demande si il existe une méthode plus simple et professionnelle !

convert(varchar(10),convert(datetime,'01-'
+convert(varchar(2),datepart(mm,DATEADD(month,-1,getdate())))+'-'
+convert(varchar(4),datepart(year,getdate()))),105)

Merci.

2 réponses

Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
Bonjour,

Oui, il existe une méthode plus professionelle pour filtrer les lignes "du mois dernier" :

SELECT MesColonnes
FROM MaTable
WHERE MaColonneDate >= DATEADD(
    MONTH, 
    DATEDIFF(MONTH, 0, GETDATE()) - 1
    , 0)
AND
    MaColonneDate < DATEADD(
    MONTH, 
    DATEDIFF(MONTH, 0, GETDATE()) 
    , 0)
Messages postés
65
Date d'inscription
mercredi 6 avril 2011
Statut
Membre
Dernière intervention
9 janvier 2012

désolé, en fait voilà la méthode que j'utilise (ce n'est celle au dessus) :
convert(datetime,'01-'
+convert(varchar(2),datepart(mm,DATEADD(month,-1,getdate())))+'-'
+convert(varchar(4),datepart(year,getdate())))