如何按顺序显示上个月的总日期

时间:2012-09-13 06:14:57

标签: sql sql-server sql-server-2008

我想显示上个月的日期。我知道用于显示所有日期的查询

预期产出:

当前日期='2012-09-13'
我希望将结果显示为

1
2
3
4
,
,
,
,
31     

这些日期应该来自第8个月

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT NUMBER  
FROM   MASTER..SPT_VALUES 
WHERE  TYPE='P'
AND    NUMBER BETWEEN 
       DATEPART(DD,DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1,0))
AND    DATEPART(DD,DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()),-1))

将Getdate()替换为您的日期

答案 1 :(得分:0)

请尝试:

;WITH DATES (date)
AS(
SELECT DATEADD(month, DATEDIFF(month, 0, dateadd(month,-1,getdate())), 0)
UNION ALL
SELECT DATEADD(DAY,1,date)
FROM DATES
WHERE DATEADD(DAY,1,date)<=DATEADD(month, DATEDIFF(month, 0, getdate()), 0)-1
)SELECT DAY(date) AS DAYS FROM DATES