Besoin d'aide pour écrire la requête pour obtenir les données du mois dernier ainsi que les données de mois à date. P>
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). p>
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. P>
merci, p>
shahsra p>
4 Réponses :
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;
Merci de me donner le lien. Vraiment c'est très utile.
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 )
inexact - le 2e on donne "2011-02-01 10: 55: 49.160"
WHERE dateColumn >= DATEADD(month, datediff(month, 0, getdate())-1, 0) AND dateColumn < DATEADD(DAY, DATEDIFF(day, 0, getdate()), 1)
Nice, j'aime la solution datrodiff.
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.