Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Podziel zakres dat na wiersze roczne i miesięczne w SQL Server 2005

Oto metoda wykorzystująca rekurencyjne CTE:

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;

Możesz przekonwertować wynik końcowy na dowolny format. Na przykład:

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

lub

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie udało się zaktualizować bazy danych .mdf, ponieważ baza danych jest tylko do odczytu (aplikacja Windows)

  2. Czy istnieje sposób/narzędzie do identyfikacji szacowanego czasu wykonywania zapytania w serwerze SQL?

  3. Replikacja SQL Server wymaga rzeczywistej nazwy serwera, aby nawiązać połączenie z serwerem

  4. Zamów kolumnę według niskiego, średniego, wysokiego?

  5. Alternatywa dla operatora MAX na polach bitowych