web-dev-qa-db-fra.com

comment obtenir le premier jour et le dernier du mois précédent en utilisant SQL

J'essaie d'obtenir le premier jour du mois dernier, comme le 01/01/2013. Je souhaite également obtenir le dernier jour du mois précédent, comme le 31/01/2013. Si nous sommes en mars, je veux faire la même chose que 02/01/2013 et 28/02/2013 et ainsi de suite ...... merci

8
moe

Cela devrait le faire:

--First day of last month
SELECT DATEADD(m,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()), 0))
--Last day of last month
SELECT DATEADD(d,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))
27
Simon C

voici ma solution

DECLARE @Today DATETIME
SELECT @Today = GETDATE()

  update  Test.dbo.DateTable
  set StartDate = (
SELECT convert (varchar, DATEADD(dd,-(DAY(DATEADD(mm,1,@Today))-1),DATEADD(mm,-1,@Today)),101))

update Test.dbo.DateTable
set EndDate = (
SELECT convert(varchar, DATEADD(dd, -DAY(DATEADD(m,1,@Today)), DATEADD(m,0,@Today)),101))
0
moe

Premier jour du dernier mois

convert (date,DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0)) 

Dernier jour du mois précédent

convert (date,DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-1, -1)))
0
Pradeep atkari