如何使用GETDATE()获取过去一个月的月份和年份?

时间:2014-04-21 21:03:29

标签: sql sql-server-2008

我怎样才能得到一个可以帮助我的陈述 上个月和今年?

我有一个INSERT INTO和一列report_date [datetime]

insert into table_a (report_date) values ( ??);

我想显示过去一个月和一年, 所以例如今天是2014年4月21日 所以它会在专栏中显示3/2014 如果今天是2014年5月1日,它将显示4/2014? 这可能还是必须有一天?

2 个答案:

答案 0 :(得分:2)

您正在寻找DATEADD功能:

SELECT DATEPART(month, DATEADD(month, -1, GETDATE()), DATEPART(year, DATEADD(month, -1, GETDATE())

答案 1 :(得分:0)

如果你想在上个月找到'今年'今年'你可以这样做:

SELECT CAST(
  CAST(YEAR(GETDATE()) AS VARCHAR) + '-' + 
  CAST(MONTH(GETDATE())-1 AS VARCHAR) + '-' + 
  CAST(DAY(GETDATE())  AS VARCHAR)
AS DATETIME)

但是在2015年1月,它将返回2015年DEC。 如果您只是想上个月,请使用' DATEADD'功能

SELECT DATEADD(MONTH, -1, GETDATE())