sql >> Database >  >> RDS >> Sqlserver

Datumbereik splitsen in jaar-maandrijen op SQL Server 2005

Hier is een methode die recursieve CTE's gebruikt:

with CTE as (
      select id, dateStart as dte, dateEnd
      from t
      union all
      select id, dateadd(month, 1, dte), dateEnd
      from CTE
      where dateadd(month, 1, dte) < dateEnd
     )
select id, dte
from CTE;

U kunt het eindresultaat naar elk gewenst formaat converteren. Bijvoorbeeld:

select id, year(dte) * 10000 + month(dte) as yyyymm_int

of

select id, cast(year(dte) * 10000 + month(dte) as varchar(255)) as yyyymm


  1. OracleException (0x80004005) bij verbinding met Oracle Database

  2. Waarschuwingen voor uitvoeringsplan vastleggen met uitgebreide gebeurtenissen

  3. vertaling mysql_fetch_array naar PDO::FETCH_NUM

  4. Is Joomla 2.5 veel sneller dan Joomla 1.5 Querywise?