Thursday, 13 March 2014

select whole year date as data in sql server

DECLARE @FromDate DATETIME, @ToDate DATETIME;
SET @FromDate = '1900-01-01';
SET @ToDate = '2040-12-31';

-- all days in that period
SELECT TOP (DATEDIFF(DAY, @FromDate, @ToDate)+1)
  TheDate = DATEADD(DAY, number, @FromDate)
  FROM [master].dbo.spt_values
  WHERE [type] = N'P' ORDER BY number;

-- just the months in that period
SELECT TOP (DATEDIFF(MONTH, @FromDate, @ToDate)+1)
  TheDate  = DATEADD(MONTH, number, @FromDate),
  TheMonth = MONTH(DATEADD(MONTH, number, @FromDate)),
  TheYear  = YEAR(DATEADD(MONTH, number, @FromDate))
  FROM [master].dbo.spt_values
  WHERE [type] = N'P' ORDER BY number;
 
also
http://stackoverflow.com/questions/4273723/what-is-the-purpose-of-system-table-table-master-spt-values-and-what-are-the-me

No comments:

Post a Comment