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
