如何获得第一天和最后使用SQL比上月(how to get the first day and th

2019-07-20 18:10发布

我想获得最后一个月的第一天像2013年1月1日,我也想拿到上月的最后一天像2013年1月31日。 如果我们在三月份的话,我希望做同样的事情,像2013年2月1日和2013年2月28日等....谢谢

Answer 1:

这应该这样做:

--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))


Answer 2:

这里是我的解决办法

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))


Answer 3:

最后一个月的第一天

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

与上月的最后一天

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


Answer 4:

下面的查询工作找到我的旧的MySQL前一个月的最后一天:

SELECT DATE_SUB(CURDATE(),INTERVAL Extract(DAY from now()) DAY);


文章来源: how to get the first day and the last of previous month using sql