Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用GETDATE()获取上个月的月份和年份?_Sql_Sql Server 2008 - Fatal编程技术网

Sql 如何使用GETDATE()获取上个月的月份和年份?

Sql 如何使用GETDATE()获取上个月的月份和年份?,sql,sql-server-2008,Sql,Sql Server 2008,我怎样才能把它变成一句能让我明白的话 上个月和今年 我在列报告中插入了日期[日期时间] insert into table_a (report_date) values ( ??); 我想展示过去的一个月和一年, 比如今天是2014年4月21日 因此,在专栏中会显示2014年3月 如果今天是2014年5月1日,它将显示4/2014? 这是可能的还是必须有一天?您正在寻找功能: SELECT DATEPART(month, DATEADD(month, -1, GETDATE()), DATEP

我怎样才能把它变成一句能让我明白的话 上个月和今年

我在列报告中插入了日期[日期时间]

insert into table_a (report_date) values ( ??);
我想展示过去的一个月和一年, 比如今天是2014年4月21日 因此,在专栏中会显示2014年3月 如果今天是2014年5月1日,它将显示4/2014? 这是可能的还是必须有一天?

您正在寻找功能:

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

如果你想通过“今年”获得“上个月”,你可以:

SELECT CAST(
  CAST(YEAR(GETDATE()) AS VARCHAR) + '-' + 
  CAST(MONTH(GETDATE())-1 AS VARCHAR) + '-' + 
  CAST(DAY(GETDATE())  AS VARCHAR)
AS DATETIME)
但在2015年1月,它将在2015年12月回归。 如果您只想在上个月使用“DATEADD”函数

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

上个月还是上个月?要获取今年的上个月,要输出具有相同语句的年和月,换句话说,要获取今年的上个月,例如获取2014年3月如果要将结果作为日期时间值,则必须包含一天-是否要第一天、最后一天,或者与当天同一天,但提前一个月?哦,我不知道我会有一天参与。因为它会在不到30/31天的一个月内引发问题。因此,不可能有一个“3/2014”选择给我,我必须将它们分开,才能得到上个月和今年?