在SQL Server 2008 R2中选择当前月份日期的最佳方法是什么

时间:2011-10-21 04:56:29

标签: sql-server-2008-r2

  

可能重复:
  Get a list of dates between two dates using a function

我需要将结果作为

1/01/2011
2/01/2011
3/01/2011
4/01/2011
5/01/2011
.
.
.
31/01/2011

我不想为此创建表格。只是想得到这个结果。

1 个答案:

答案 0 :(得分:1)

试试这个:

  DECLARE @startDate DATETIME;
  SET @startDate = CAST(DATEPART(YYYY,GETDATE()) AS VARCHAR(4)) + CAST(DATEPART(M,GETDATE()) AS VARCHAR(2)) + '01';

  ;WITH CTE(n) AS
  (SELECT 0 UNION ALL SELECT n+1 FROM CTE WHERE n < 30)
  SELECT    DATEADD(dd,n,@startDate)
  FROM  CTE
  WHERE MONTH(DATEADD(dd,n,@startDate)) = MONTH(@startDate);
相关问题