I need to get all dates from 01-01-2016 to todays date.
Example:
01-01-2016
02-01-2016
03-01-2016
.
.
.
01-02-2016
.
.
.
17-11-2017
Any help would be appreciated.
I need to get all dates from 01-01-2016 to todays date.
Example:
01-01-2016
02-01-2016
03-01-2016
.
.
.
01-02-2016
.
.
.
17-11-2017
Any help would be appreciated.
you can make use of common table expression for achieving this and it is one of the fastest way to do it
;WITH cte
as
(
SELECT CONVERT(DATE,'01-01-2016') as DateCol
UNION ALL
SELECT CONVERT(DATE,DATEADD(DAY,1,DateCol)) FROM CTE
WHERE DATEADD(DAY,1,DateCol) <= '11-17-2017'
)
SELECT * FROM CTE
OPTION (maxrecursion 0)
SELECT *FROM Table_Name
WHERE CONVERT(NVARCHAR,date_column,111) >=CONVERT(NVARCHAR,@From_Date,111) and CONVERT(NVARCHAR,date_column,111) <=CONVERT( NVarchar, @TO_Date, 111)
You need to have a numbers table for this to work..
select dateadd(day,Number,'01-01-2016') from numbers
where
dateadd(day,Number,'01-01-2016')<=getdate()
To create numbers table
USE Model
GO
CREATE TABLE Numbers
(
Number INT NOT NULL,
CONSTRAINT PK_Numbers
PRIMARY KEY CLUSTERED (Number)
WITH FILLFACTOR = 100
)
INSERT INTO Numbers
SELECT
(a.Number * 256) + b.Number AS Number
FROM
(
SELECT number
FROM master..spt_values
WHERE
type = 'P'
AND number <= 255
) a (Number),
(
SELECT number
FROM master..spt_values
WHERE
type = 'P'
AND number <= 255
) b (Number)
GO
References:
http://dataeducation.com/you-require-a-numbers-table/
This is what i have understand from your requirement. Check below query.
=========================================
declare @date datetime='2016-01-01'
declare @tbl table (alldate date)
while (@date<=GETDATE()) begin insert into @tbl select @date
set @date=@date+1
if @date=GETDATE() begin break; end end