sql >> Database >  >> RDS >> Sqlserver

maanden tussen twee datums in sql-server met begin- en einddatum van elk van hen in sql-server

Een methode is een recursieve CTE:

with cte as (
      select dateadd(day, 1 - day(@startdate), @startdate) as som,
             eomonth(@startdate) as eom
      union all
      select dateadd(month, 1, som), eomonth(dateadd(month, 1, som))
      from cte
      where dateadd(month, 1, som) < @enddate
     )
select *
from cte;

Als u de naam van de maand wilt, kunt u datename(month, som) . gebruiken .



  1. Rails 3, ActiveRecord, PostgreSQL - .uniq-opdracht werkt niet?

  2. tijdzone bewust date_trunc functie

  3. Voeg alle gegevens van een datagridview in één keer in de database in

  4. Hoe kan ik een optionele JOIN doen met SQL?