11
votes

Comment obtenir les données du mois dernier et des données de mois à ce jour

Besoin d'aide pour écrire la requête pour obtenir les données du mois dernier ainsi que les données de mois à date.

Si la date du jour est le 23 mars 2011, j'ai besoin de récupérer les données du mois dernier et des données jusqu'à la date d'aujourd'hui (signifie mars 23 2011).

Si la date est le 3 avril 2011, les données devraient constituer des données de mois de mars et les données jusqu'au 3 avril 2011.

merci,

shahsra


0 commentaires

4 Réponses :


0
votes

page très utile

declare @d datetime = '2011-04-03';

declare @startDate datetime;
select @startDate =
   CAST('01 '+ RIGHT(CONVERT(CHAR(11),DATEADD(MONTH,-1,@d),113),8) AS datetime);
select @startDate;


1 commentaires

Merci de me donner le lien. Vraiment c'est très utile.



4
votes

reculer d'un mois, soustrayez le nombre de jours à la date actuelle et ajoutez une journée.

DateField >= Cast( Floor( Cast( (DateAdd(
          mm, 
          -1, 
          DateAdd(dd, -1*DatePart(dd, GetDate())+1, GetDate())
      )) AS FLOAT ) ) AS DATETIME )


1 commentaires

inexact - le 2e on donne "2011-02-01 10: 55: 49.160"



19
votes
WHERE dateColumn >= DATEADD(month, datediff(month, 0, getdate())-1, 0)
  AND dateColumn <  DATEADD(DAY, DATEDIFF(day, 0, getdate()), 1)

1 commentaires

Nice, j'aime la solution datrodiff.



1
votes
Select Column1, Column2 From Table1
Where DateColumn <= GetDate() AND 
DateColumn >= DATEADD(dd, - (DAY(DATEADD(mm, 1, GetDate())) - 1), DATEADD(mm, - 1, GetDate()))
Edit: +1 to Russel Steen. I was posting mine before I knew he had posted.

0 commentaires