SQL查询返回GET()mm yyyy-1个月

SQL查询返回GET()mm yyyy-1个月,sql,sql-server-2005,Sql,Sql Server 2005,我在下面有这个问题,但我担心到2012年时它将不起作用。任何帮助都会很棒 SELECT distinct Month(GetDate())-1,Year(GetDate()) FROM myybl 尝试使用: 也许这是: SELECT RIGHT(CONVERT(VARCHAR, DATEADD(mm,-1,GETDATE()),105),7) 今天的格式化输出如下所示: 09-2011 如果需要两个单独的列: SELECT DATEPART(mm,DATEADD(mm,-1,GETDAT

我在下面有这个问题,但我担心到2012年时它将不起作用。任何帮助都会很棒

SELECT distinct Month(GetDate())-1,Year(GetDate()) FROM myybl
尝试使用:

也许这是:

SELECT RIGHT(CONVERT(VARCHAR, DATEADD(mm,-1,GETDATE()),105),7)
今天的格式化输出如下所示:

09-2011
如果需要两个单独的列:

SELECT DATEPART(mm,DATEADD(mm,-1,GETDATE())) AS MONTH,
       DATEPART(yyyy,DATEADD(mm,-1,GETDATE())) AS YEAR
输出:

MONTH   YEAR
    9   2011

这是行不通的,因为我不想一年前,一个月前。一年中的-1只需要一个月的时间,而不是一年。那就是一月份的原因。为什么有人给这个答案a-1?我认为这个答案直接解决了问题中的问题?
MONTH   YEAR
    9   2011