SQL Server - Datumliste erzeugen

Asked By Michael Reukauff on 14-Jul-10 09:46 AM
Hallo

Ist es möglich, nur mit SQL eine Liste aller Daten vom 01.01. eines Jahres
bis zum 31.12. desselben Jahres zu erzeugen ?

Also so
01.01.2010
02.01.2010

oder so
2010-01-01
2010-01-02

wobei mir letzteres lieber wäre.

Danke schon mal für etwaige Antworten.

Michael




Jörg_Burzeja replied to Michael Reukauff on 14-Jul-10 11:34 AM
Am 14.07.2010 15:46, schrieb Michael Reukauff:



USE tempdb
GO
SET NOCOUNT ON
GO

CREATE TABLE tblDatum(
Datum smalldatetime not null PRIMARY KEY
)
GO

-- Datumstabelle per Schleife f?llen
DECLARE @datum smalldatetime
SET @datum = '20100101'
WHILE @datum < '20101231' BEGIN
INSERT INTO tblDatum(Datum)
VALUES (@datum)
SET @datum = DateAdd(dd, 1, @datum)
END

GO

SELECT * from tbldatum


GO
DROP TABLE tblDatum
GO

--
Viele Gr?sse
J?rg

++ Where Do you want to go tomorrow? ++
++ http://schneegans.de/usenet/microsoft-umzug/ ++
Michael Reukauff replied to Jörg_Burzeja on 15-Jul-10 03:03 AM
Hi Jörg

Danke.

Michael
Christoph Muthmann replied to Michael Reukauff on 15-Jul-10 03:37 AM
Der Vollständigkeit halber poste ich hier noch mal die Lösung auf die
gleiche Frage im Forum:
WITH    Kalender
AS ( SELECT   CAST('20100101' AS DATETIME) AS [Tag]
UNION ALL
SELECT   DATEADD(dd, 1, [Tag])
FROM     Kalender
WHERE    DATEADD(dd, 1, [Tag] ) <= '20101231'
)
Select convert(varchar(10),k.Tag,104) as Datum, datename(DW,k.Tag) as
Wochentag
from Kalender k
order by tag
OPTION  ( MAXRECURSION 0 ) ;
-- Ohne diesen Hinweis würde die Rekursion bei 100 Tagen stoppen. Fatal bei
einem längeren Zeitraum.


Einen schönen Tag noch,
Christoph
--
Microsoft SQL Server MVP
http://www.insidesql.org