<?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: .NET sdk Filter Datetime column in Integration, Extension &amp; APIs</title>
    <link>https://community.qlik.com/t5/Integration-Extension-APIs/NET-sdk-Filter-Datetime-column/m-p/2470641#M20915</link>
    <description>&lt;P&gt;ok thanks,&lt;BR /&gt;How do I filter the field within a date range instead?&amp;nbsp;I tried this way but it doesn't work:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;var fineField = app.GetField("Fine");                   
//var competenzaField = app.GetField("Gestione di Competenza");                   
//var fineField = app.GetField("Fine");                   


if (!string.IsNullOrWhiteSpace(dataInizioFilter)) 
{
    try
    {
        DateTime dataInizio = DateTime.ParseExact(dataInizioFilter, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);
        DateTime dataFine = DateTime.ParseExact(dataFineFilter, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);
        //inizioField.Select(dataInizioFilter);
        // Applica il filtro sulla colonna "Fine"
        //string dateFilterExpression = $"=[Fine] &amp;gt;= '{dataInizio:yyyy-MM-dd}' AND [Fine] &amp;lt;= '{dataFine:yyyy-MM-dd}'";
        string dateFilterExpression = $"=[Fine] &amp;gt;= '{dataInizio:dd/MM/yyyy HH:mm}' AND [Fine] &amp;lt;= '{dataFine:dd/MM/yyyy HH:mm}'";
        fineField.Select(dateFilterExpression);
        //fineField.SelectValues(dataInizio, dataFine);
    }
    catch
    {
        return req.CreateResponse(HttpStatusCode.BadRequest, "Data Inizio non valida");
    }
    
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 15 Jul 2024 09:48:16 GMT</pubDate>
    <dc:creator>alessandrovernile</dc:creator>
    <dc:date>2024-07-15T09:48:16Z</dc:date>
    <item>
      <title>.NET sdk Filter Datetime column</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/NET-sdk-Filter-Datetime-column/m-p/2469268#M20890</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I need to filter a table on Qlik Cloud and then retrieve the data using GetHyperCubeDataAsync. The filter works correctly when I apply it to a string column, but it doesn't work when I try to apply it to the 'Inizio' column, which is a date. What am I doing wrong? Thanks&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;IQcsLocation location = QcsLocation.FromUri(qlikApiUrl);

                location.AsApiKey(qlikApiKey);

                using (IApp app = location.App(qlikAppId))
                {                   
                    //string identifFilter = "2-7-1-12-30";

                    DateTime dateTime = new DateTime(2023, 6, 13, 10, 40, 42, DateTimeKind.Utc);

                    //var identifField = app.GetField("Identificativo");

                    // Applica i filtri sulle date
                    var inizioField = app.GetField("Inizio");
                    var fineField = app.GetField("Fine");

                    // Converti le date nel formato richiesto
                    DateTime dataInizio = DateTime.ParseExact(dataInizioFilter, "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
                    //DateTime dataFine = DateTime.ParseExact(dataFineFilter, "M/d/yyyy", CultureInfo.InvariantCulture);

                    var inizioFieldValues = new List&amp;lt;FieldValue&amp;gt;
                    {
                        new FieldValue{ IsNumeric = true, Number = dateTime.ToOADate() }                         
                    };

                    inizioField.SelectValues(inizioFieldValues.ToArray(), true);
}&lt;/LI-CODE&gt;
&lt;P&gt;This is my qlik table:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="alessandrovernile_1-1720544602920.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/169126i4710976DB3A7D3AA/image-size/medium?v=v2&amp;amp;px=400" role="button" title="alessandrovernile_1-1720544602920.png" alt="alessandrovernile_1-1720544602920.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jul 2024 17:04:08 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/NET-sdk-Filter-Datetime-column/m-p/2469268#M20890</guid>
      <dc:creator>alessandrovernile</dc:creator>
      <dc:date>2024-07-09T17:04:08Z</dc:date>
    </item>
    <item>
      <title>Re: .NET sdk Filter Datetime column</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/NET-sdk-Filter-Datetime-column/m-p/2469418#M20892</link>
      <description>&lt;P&gt;Matching on float point values is always tricky. Are you sure there is not a millisecond part to those timestamp that you miss? The string formatting of timestamps often hides that part. And also, I'm not sure if the C# "ToOADate" produces the number in the format that Qlik uses, but perhaps you've already verified that.&lt;/P&gt;
&lt;P&gt;You could potentially do a match based on the string representation of the timestamp. You already seem to have the "dataInzioFilter" available. With that you should be able to do something like this:&lt;/P&gt;
&lt;PRE&gt;inzioField.Select(dataInzioFilter);&lt;/PRE&gt;</description>
      <pubDate>Wed, 10 Jul 2024 07:28:29 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/NET-sdk-Filter-Datetime-column/m-p/2469418#M20892</guid>
      <dc:creator>Øystein_Kolsrud</dc:creator>
      <dc:date>2024-07-10T07:28:29Z</dc:date>
    </item>
    <item>
      <title>Re: .NET sdk Filter Datetime column</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/NET-sdk-Filter-Datetime-column/m-p/2470641#M20915</link>
      <description>&lt;P&gt;ok thanks,&lt;BR /&gt;How do I filter the field within a date range instead?&amp;nbsp;I tried this way but it doesn't work:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;var fineField = app.GetField("Fine");                   
//var competenzaField = app.GetField("Gestione di Competenza");                   
//var fineField = app.GetField("Fine");                   


if (!string.IsNullOrWhiteSpace(dataInizioFilter)) 
{
    try
    {
        DateTime dataInizio = DateTime.ParseExact(dataInizioFilter, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);
        DateTime dataFine = DateTime.ParseExact(dataFineFilter, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);
        //inizioField.Select(dataInizioFilter);
        // Applica il filtro sulla colonna "Fine"
        //string dateFilterExpression = $"=[Fine] &amp;gt;= '{dataInizio:yyyy-MM-dd}' AND [Fine] &amp;lt;= '{dataFine:yyyy-MM-dd}'";
        string dateFilterExpression = $"=[Fine] &amp;gt;= '{dataInizio:dd/MM/yyyy HH:mm}' AND [Fine] &amp;lt;= '{dataFine:dd/MM/yyyy HH:mm}'";
        fineField.Select(dateFilterExpression);
        //fineField.SelectValues(dataInizio, dataFine);
    }
    catch
    {
        return req.CreateResponse(HttpStatusCode.BadRequest, "Data Inizio non valida");
    }
    
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jul 2024 09:48:16 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/NET-sdk-Filter-Datetime-column/m-p/2470641#M20915</guid>
      <dc:creator>alessandrovernile</dc:creator>
      <dc:date>2024-07-15T09:48:16Z</dc:date>
    </item>
    <item>
      <title>Re: .NET sdk Filter Datetime column</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/NET-sdk-Filter-Datetime-column/m-p/2473534#M21019</link>
      <description>&lt;P&gt;If you want to do that type of a little more advanced selections, then you'll need to use a list object. That's how you do filtering in data using that magnifying glass in the client. This thread touches on how to do this for dates:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/App-Development/How-to-select-a-date-range-in-Qlik-Sense-without-using/td-p/1253520" target="_blank"&gt;https://community.qlik.com/t5/App-Development/How-to-select-a-date-range-in-Qlik-Sense-without-using/td-p/1253520&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I think the exact format to use for that filter depends on the default date and time format settings in your app, this is an example for how to select all timestamps for a particular date:&lt;/P&gt;
&lt;P&gt;&amp;gt;=7/29/2024 12:00:00 AM&amp;lt;7/30/2024 12:00:00 AM&lt;/P&gt;
&lt;P&gt;The .NET SDK has the convenience class "AppField" for doing operations on fields. With that class can do something like this to use the above filter:&lt;/P&gt;
&lt;PRE&gt;var theFilter = "&amp;gt;=4/13/2023 12:00:00 AM&amp;lt;4/14/2023 12:00:00 AM";&lt;BR /&gt;var aF = app.GetAppField("LocalTime");&lt;BR /&gt;var path = aF.GetAllListObjectPagers().Single().Path;&lt;BR /&gt;aF.BeginSelections(new []{path});&lt;BR /&gt;aF.SearchListObjectFor(path, theFilter);&lt;BR /&gt;aF.AcceptListObjectSearch(path, true);&lt;BR /&gt;aF.EndSelections(true);&lt;/PRE&gt;</description>
      <pubDate>Mon, 29 Jul 2024 12:10:49 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/NET-sdk-Filter-Datetime-column/m-p/2473534#M21019</guid>
      <dc:creator>Øystein_Kolsrud</dc:creator>
      <dc:date>2024-07-29T12:10:49Z</dc:date>
    </item>
  </channel>
</rss>

