Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

изберете един и същ ден всеки месец за следващите 5 години с помощта на SQL?

Какво ще кажете за нещо като

DECLARE @StartDate DATETIME = '05 Jan 2013',
        @YearsAdded INT = 5

;WITH Dates AS (
        SELECT  @StartDate [Date]
        UNION ALL
        SELECT  DATEADD(MONTH,1,[Date])
        FROM    Dates
        WHERE   DATEADD(MONTH,1,[Date]) <= DATEADD(YEAR,@YearsAdded,@StartDate)
)
SELECT  *
FROM    Dates
OPTION (MAXRECURSION 0)

ДЕМО SQL Fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EF5:Не може да се прикачи файла „{0}“ като база данни „{1}“

  2. Направете, а не нарушавайте производителността на SQL Server

  3. SQL Server рекурсивно самостоятелно присъединяване

  4. SQL Server (localdb)\v11.0 е обяснено

  5. Създайте временна таблица на базата на друга таблица в SQL Server