<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Split date ranges by day in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Split-date-ranges-by-day/m-p/2466561#M99258</link>
    <description>&lt;P&gt;Nice one&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/57698"&gt;@krmvacar&lt;/a&gt;.&lt;/P&gt;
&lt;P&gt;Following my solution:&lt;/P&gt;
&lt;PRE&gt;Data:
LOAD
    ORDERID,
    Date(Floor(Timestamp(STARTDATE)-1)) AS MinDate,
    Date(Floor(Timestamp(ENDDATE)+1)) AS MaxDate,
    Timestamp(STARTDATE) as STARTDATE,
    Timestamp(ENDDATE) as ENDDATE
INLINE [
    ORDERID, STARTDATE, ENDDATE
    UGR190643, 2024-01-01 23:45, 2024-01-02 15:30
    UGR190644, 2024-01-04 16:27, 2024-01-08 19:30
    UGR190645, 2024-01-05 14:30, 2024-01-05 18:30
];

TempTable:
LOAD
    ORDERID,
    MinDate - 1 + IterNo() AS TempDate,
    STARTDATE,
    ENDDATE
Resident
	Data
While
	MinDate - 1 + IterNo() &amp;lt;= MaxDate
;

DROP TABLE Data;

FinalTable:
LOAD
    ORDERID,
    If(TempDate &amp;gt;= STARTDATE,TempDate,STARTDATE) AS [STARTDATE],
    Timestamp(If(Floor(TempDate) = Floor(ENDDATE), ENDDATE, Floor(TempDate) + 1 - (1/86400))) AS [ENDDATE]
Resident
	TempTable
WHERE
	TempDate &amp;gt;= Floor(STARTDATE)
    AND TempDate &amp;lt;= Floor(ENDDATE)
Order By
	ORDERID,
    TempDate
;

DROP TABLE TempTable;&lt;/PRE&gt;
&lt;P&gt;One quick note: in your Inline Load example you said&lt;BR /&gt;&lt;SPAN&gt;UGR190644, &lt;STRONG&gt;2024-01-05&lt;/STRONG&gt; 16:27, 2024-01-08 19:30&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;But the correct is:&lt;BR /&gt;UGR190644, &lt;STRONG&gt;2024-01-04&lt;/STRONG&gt; 16:27, 2024-01-08 19:30&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Mark Costa&lt;/STRONG&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 28 Jun 2024 22:27:12 GMT</pubDate>
    <dc:creator>marksouzacosta</dc:creator>
    <dc:date>2024-06-28T22:27:12Z</dc:date>
    <item>
      <title>Split date ranges by day</title>
      <link>https://community.qlik.com/t5/App-Development/Split-date-ranges-by-day/m-p/2466541#M99256</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;
&lt;P&gt;I have a data set as follows. I want to divide the data daily, but I could not succeed. Please help.&lt;/P&gt;
&lt;TABLE width="669"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="268"&gt;ORDERID&lt;/TD&gt;
&lt;TD width="239"&gt;STARTDATE&lt;/TD&gt;
&lt;TD width="162"&gt;ENDDATE&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;UGR190643&lt;/TD&gt;
&lt;TD&gt;2024-01-01 23:45&lt;/TD&gt;
&lt;TD&gt;2024-01-02 15:30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;UGR190644&lt;/TD&gt;
&lt;TD&gt;2024-01-04 16:27&lt;/TD&gt;
&lt;TD&gt;2024-01-08 19:30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;UGR190645&lt;/TD&gt;
&lt;TD&gt;2024-01-05 14:30&lt;/TD&gt;
&lt;TD&gt;2024-01-05 18:30&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The code I wrote and the result I want are as follows:&lt;/P&gt;
&lt;P&gt;Data:&lt;BR /&gt;LOAD &lt;BR /&gt;ORDERID, &lt;BR /&gt;Timestamp(STARTDATE) as STARTDATE, &lt;BR /&gt;Timestamp(ENDDATE) as ENDDATE&lt;BR /&gt;INLINE [&lt;BR /&gt;ORDERID, STARTDATE, ENDDATE&lt;BR /&gt;UGR190643, 2024-01-01 23:45, 2024-01-02 15:30&lt;BR /&gt;UGR190644, 2024-01-05 16:27, 2024-01-08 19:30&lt;BR /&gt;UGR190645, 2024-01-05 14:30, 2024-01-05 18:30&lt;BR /&gt;];&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;TempTable:&lt;BR /&gt;LOAD&lt;BR /&gt;ORDERID,&lt;BR /&gt;STARTDATE + IterNo() - 1 AS TempStart,&lt;BR /&gt;STARTDATE,&lt;BR /&gt;ENDDATE&lt;BR /&gt;Resident Data&lt;BR /&gt;While STARTDATE + IterNo() - 1 &amp;lt;= ENDDATE;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;FinalTable:&lt;BR /&gt;LOAD&lt;BR /&gt;ORDERID,&lt;BR /&gt;TempStart AS STARTDATE,&lt;BR /&gt;Timestamp(&lt;BR /&gt;If(Floor(TempStart) = Floor(ENDDATE), &lt;BR /&gt;ENDDATE, &lt;BR /&gt;Floor(TempStart) + 1 - (1/86400))&lt;BR /&gt;) AS ENDDATE&lt;BR /&gt;Resident TempTable&lt;BR /&gt;Order By ORDERID, STARTDATE;&lt;/P&gt;
&lt;P&gt;DROP Table TempTable;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Exit Script;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to result:&lt;/P&gt;
&lt;TABLE width="492"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="122.875px" height="25px"&gt;ORDERID&lt;/TD&gt;
&lt;TD width="163.688px" height="25px"&gt;STARTDATE&lt;/TD&gt;
&lt;TD width="204.438px" height="25px"&gt;ENDDATE&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="122.875px" height="25px"&gt;UGR190643&lt;/TD&gt;
&lt;TD width="163.688px" height="25px"&gt;2024-01-01 23:45&lt;/TD&gt;
&lt;TD width="204.438px" height="25px"&gt;2024-01-01 23:59&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="122.875px" height="25px"&gt;UGR190643&lt;/TD&gt;
&lt;TD width="163.688px" height="25px"&gt;2024-01-02 00:00&lt;/TD&gt;
&lt;TD width="204.438px" height="25px"&gt;2024-01-02 15:30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="122.875px" height="25px"&gt;UGR190644&lt;/TD&gt;
&lt;TD width="163.688px" height="25px"&gt;2024-01-04 16:27&lt;/TD&gt;
&lt;TD width="204.438px" height="25px"&gt;2024-01-04 23:59&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="122.875px" height="25px"&gt;UGR190644&lt;/TD&gt;
&lt;TD width="163.688px" height="25px"&gt;2024-01-05 00:00&lt;/TD&gt;
&lt;TD width="204.438px" height="25px"&gt;2024-01-05 23:59&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="122.875px" height="25px"&gt;UGR190644&lt;/TD&gt;
&lt;TD width="163.688px" height="25px"&gt;2024-01-06 00:00&lt;/TD&gt;
&lt;TD width="204.438px" height="25px"&gt;2024-01-06 23:59&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="122.875px" height="25px"&gt;UGR190644&lt;/TD&gt;
&lt;TD width="163.688px" height="25px"&gt;2024-01-07 00:00&lt;/TD&gt;
&lt;TD width="204.438px" height="25px"&gt;2024-01-07 23:59&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="122.875px" height="25px"&gt;UGR190644&lt;/TD&gt;
&lt;TD width="163.688px" height="25px"&gt;2024-01-08 00:00&lt;/TD&gt;
&lt;TD width="204.438px" height="25px"&gt;2024-01-08 19:30&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="122.875px" height="25px"&gt;UGR190645&lt;/TD&gt;
&lt;TD width="163.688px" height="25px"&gt;2024-01-05 14:30&lt;/TD&gt;
&lt;TD width="204.438px" height="25px"&gt;2024-01-05 18:30&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 28 Jun 2024 20:31:50 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Split-date-ranges-by-day/m-p/2466541#M99256</guid>
      <dc:creator>krmvacar</dc:creator>
      <dc:date>2024-06-28T20:31:50Z</dc:date>
    </item>
    <item>
      <title>Re: Split date ranges by day</title>
      <link>https://community.qlik.com/t5/App-Development/Split-date-ranges-by-day/m-p/2466561#M99258</link>
      <description>&lt;P&gt;Nice one&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/57698"&gt;@krmvacar&lt;/a&gt;.&lt;/P&gt;
&lt;P&gt;Following my solution:&lt;/P&gt;
&lt;PRE&gt;Data:
LOAD
    ORDERID,
    Date(Floor(Timestamp(STARTDATE)-1)) AS MinDate,
    Date(Floor(Timestamp(ENDDATE)+1)) AS MaxDate,
    Timestamp(STARTDATE) as STARTDATE,
    Timestamp(ENDDATE) as ENDDATE
INLINE [
    ORDERID, STARTDATE, ENDDATE
    UGR190643, 2024-01-01 23:45, 2024-01-02 15:30
    UGR190644, 2024-01-04 16:27, 2024-01-08 19:30
    UGR190645, 2024-01-05 14:30, 2024-01-05 18:30
];

TempTable:
LOAD
    ORDERID,
    MinDate - 1 + IterNo() AS TempDate,
    STARTDATE,
    ENDDATE
Resident
	Data
While
	MinDate - 1 + IterNo() &amp;lt;= MaxDate
;

DROP TABLE Data;

FinalTable:
LOAD
    ORDERID,
    If(TempDate &amp;gt;= STARTDATE,TempDate,STARTDATE) AS [STARTDATE],
    Timestamp(If(Floor(TempDate) = Floor(ENDDATE), ENDDATE, Floor(TempDate) + 1 - (1/86400))) AS [ENDDATE]
Resident
	TempTable
WHERE
	TempDate &amp;gt;= Floor(STARTDATE)
    AND TempDate &amp;lt;= Floor(ENDDATE)
Order By
	ORDERID,
    TempDate
;

DROP TABLE TempTable;&lt;/PRE&gt;
&lt;P&gt;One quick note: in your Inline Load example you said&lt;BR /&gt;&lt;SPAN&gt;UGR190644, &lt;STRONG&gt;2024-01-05&lt;/STRONG&gt; 16:27, 2024-01-08 19:30&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;But the correct is:&lt;BR /&gt;UGR190644, &lt;STRONG&gt;2024-01-04&lt;/STRONG&gt; 16:27, 2024-01-08 19:30&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Mark Costa&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 28 Jun 2024 22:27:12 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Split-date-ranges-by-day/m-p/2466561#M99258</guid>
      <dc:creator>marksouzacosta</dc:creator>
      <dc:date>2024-06-28T22:27:12Z</dc:date>
    </item>
  </channel>
</rss>

