Format de la date retourné par dateAdd() ?

Résolu
yosboss Messages postés 67 Date d'inscription mercredi 6 avril 2011 Statut Membre Dernière intervention 9 janvier 2012 - 19 mai 2011 à 19:18
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 - 20 mai 2011 à 14:03
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

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
20 mai 2011 à 14:03
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)
3
yosboss Messages postés 67 Date d'inscription mercredi 6 avril 2011 Statut Membre Dernière intervention 9 janvier 2012
19 mai 2011 à 19:27
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())))
0
Rejoignez-nous