Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Posting on Qlik Community is temporarily paused for some users. Thank you for patience and we'll update you soon!
cancel
Showing results for 
Search instead for 
Did you mean: 
vanderson009
Creator III
Creator III

Make Date

Hi community,

Suppoes i have to create date for any previous year by using makedate function.

and using that date i have to genarate dates till today date.

How should i achive this task.

- Regards,

Villyee Anderson

Labels (1)
1 Solution

Accepted Solutions
MK_QSL
MVP
MVP

MinMaxDate:

Load

  YearStart(MakeDate(2010)) as MinDate,               //Change 2010 to any year...

  Today() as MaxDate

AutoGenerate 1;

Let vMinDate = NUM(Peek('MinDate',0,'MinMaxDate'));

Let vMaxDate = NUM(Peek('MaxDate',0,'MinMaxDate'));

Let vNoOfDays = vMaxDate - vMinDate + 1 ;

Drop Table MinMaxDate;

DateField:

Load

  Date($(vMinDate) + RowNo() - 1) as TempDate

AutoGenerate $(vNoOfDays);

View solution in original post

7 Replies
datanibbler
Champion
Champion

Hi,

try sth like

>>> makedate(year(yearstart(today(), -1)), 1, 1 <<< (for Jan 1 2013 in this example)

MK_QSL
MVP
MVP

MinMaxDate:

Load

  YearStart(MakeDate(2010)) as MinDate,               //Change 2010 to any year...

  Today() as MaxDate

AutoGenerate 1;

Let vMinDate = NUM(Peek('MinDate',0,'MinMaxDate'));

Let vMaxDate = NUM(Peek('MaxDate',0,'MinMaxDate'));

Let vNoOfDays = vMaxDate - vMinDate + 1 ;

Drop Table MinMaxDate;

DateField:

Load

  Date($(vMinDate) + RowNo() - 1) as TempDate

AutoGenerate $(vNoOfDays);

Not applicable

Hi,

Try this

 

Let vMinDateNum =Num(Date(Makedate(2013,1,1),'DD/MM/YYYY'));
Let vMaxDateNum =Num(Date(Today(),'DD/MM/YYYY'));
Let vDiff=vMaxDateNum-vMinDateNum;

Calender_Temp:
Load
Date($(vMinDateNum)+RowNo()-1) AS TempDate
AutoGenerate ($(vDiff)+1);

crusader_
Partner - Specialist
Partner - Specialist

Hi Villyee,

Try to use this script:

LET varMinDate = num(date('01.01.2010')); //For example

LET varMaxDate = num(today());                //For example                 

[tmpCalendar]:

LOAD

  DATE($(varMinDate) + RowNo() - 1) AS [Date]

AUTOGENERATE $(varMaxDate) - $(varMinDate) + 1;

[Calendar]:

LOAD

  [Date],

  YEAR([Date]) AS [Year],

  CEIL(MONTH([Date])/6) AS [Half-year],

  CEIL(MONTH([Date])/3) AS [Quarter],

  MONTH([Date]) AS [Month],

  DUAL('M ' & YEAR([Date]) & '-' & NUM(MONTH([Date]), '00'), YEAR([Date]) * 100 + Month([Date])) AS [Year, month],

  DAY([Date]) AS [Day of Month],

  WeekYear([Date]) AS [Year of Week],

  WEEK([Date]) AS [Week],

  WeekDay([Date]) AS [Day of Week],

RESIDENT tmpCalendar;

DROP TABLE tmpCalendar;

It generates Calendar from date1 to date2.

Kind regards,

Andrei

its_anandrjs
Champion III
Champion III

Create your date bu this code

Let varMinDate  = Num(Makedate(2006,1,1));

Let varMaxDate = Num(Makedate(Year(today()),Month(today()),Day(today())));

Datefield:

LOAD date($(varMinDate)+IterNo()-1) AS Datefield

AUTOGENERATE (1)

WHILE $(varMinDate)+IterNo()-1<= $(varMaxDate);

arjunkrishnan
Partner - Creator II
Partner - Creator II

Hi Frd Use This One Very Useful For U

Let vDateMin = Floor(Num(MakeDate(2013,1,1)));

Let vDateMax = Today();

Regrads ArjunKrish

Not applicable

Range:

  LOAD

      Min([Order Date]) as MinDate,

      Max([Order Date]) as MaxDate

     

  RESIDENT Orders;

 

 

  LET vMinDate = Num(Peek('MinDate',0,'Range'));

  LET vMaxDate = Num(Peek('MaxDate',0,'Range'));

 

  LET vToday   = $(vMaxDate);

 

  TempCal:

 

    LOAD

         date($(vMinDate) + RowNo() -1) as TempDate

        

    Autogenerate

   

         $(vMaxDate)  - $(vMinDate) + 1;    

        

        

  DROP TABLE MinMax;

 

 

  Calender:

 

     LOAD

    

     TempDate as Date,

    

     RESIDENT TempCal

     ORDER BY TempDate ASC;

    

  DROP TABLE TempCal;