locked
condition expression with date time RRS feed

  • Question

  • how do i write a condition express to find records greater than some date 4pm

    the following returns zero records and i know there are some

     

    Dim conditionPrincipalZipCode As New ConditionExpression

    conditionPrincipalZipCode.AttributeName =

    "createdon"

    conditionPrincipalZipCode.Operator = ConditionOperator.In

    conditionPrincipalZipCode.Values =

    New Object(0) {}

    conditionPrincipalZipCode.Values(0) =

    "2009-12-20 16:00:00"

    Wednesday, December 23, 2009 7:36 PM

Answers

  • Hi

    Try this.


    VB
    -----------------------------

    Dim query As New QueryExpression()

    query.EntityName = "account"

    Dim columns As New ColumnSet()
    columns.Attributes = New string() { "createdon", "name" }
    query.ColumnSet = columns


    query.Criteria = New FilterExpression()
    query.Criteria.FilterOperator = LogicalOperator.And

    Dim condition1 As New ConditionExpression()
    condition1.AttributeName = "createdon"
    condition1.Operator = ConditionOperator.GreaterEqual
    condition1.Values = New Object() { "2009-11-02T03:00:25-05:00" }

    query.Criteria.Conditions = New ConditionExpression() { condition1 }


    C#
    -------------------------

    QueryExpression query = new QueryExpression();

    query.EntityName = "account";

    ColumnSet columns = new ColumnSet();
    columns.Attributes = new string[] { "createdon", "name" };
    query.ColumnSet = columns;


    query.Criteria = new FilterExpression();
    query.Criteria.FilterOperator = LogicalOperator.And;

    ConditionExpression condition1 = new ConditionExpression();
    condition1.AttributeName = "createdon";
    condition1.Operator = ConditionOperator.GreaterEqual;
    condition1.Values = new object[] { "2009-11-02T03:00:25-05:00" };

    query.Criteria.Conditions = new ConditionExpression[] { condition1 };

    Regards
    Vinoth

    Thursday, December 24, 2009 8:06 AM

All replies

  • Hi.

    You have to use instance of CrmDateTime class. I don't know how it will be in VB.Net but in C# must be something like:

    conditionPrincipalZipCode.Values[0] = new CrmDateTime("2009/12/20T00:00:00");

    Check this url - http://technet.microsoft.com/en-us/library/cc151068.aspx
    Truth is opened the prepared mind My blog - http://a33ik.blogspot.com
    Wednesday, December 23, 2009 7:48 PM
    Moderator

  •   0x80040203
      Condition for attribute 'createdon': date-time values are expected to be passed as strings.
      Platform
    Wednesday, December 23, 2009 7:56 PM

  •   0x80040203
      Condition for attribute 'createdon': date-time values are expected to be passed as strings.
      Platform

    Yes - this is my mistake.

    Try following code:

    conditionPrincipalZipCode.Values(0) = "2009/12/20T16:00:00";



    Truth is opened the prepared mind My blog - http://a33ik.blogspot.com
    Wednesday, December 23, 2009 8:28 PM
    Moderator
  • Hi

    Try this.


    VB
    -----------------------------

    Dim query As New QueryExpression()

    query.EntityName = "account"

    Dim columns As New ColumnSet()
    columns.Attributes = New string() { "createdon", "name" }
    query.ColumnSet = columns


    query.Criteria = New FilterExpression()
    query.Criteria.FilterOperator = LogicalOperator.And

    Dim condition1 As New ConditionExpression()
    condition1.AttributeName = "createdon"
    condition1.Operator = ConditionOperator.GreaterEqual
    condition1.Values = New Object() { "2009-11-02T03:00:25-05:00" }

    query.Criteria.Conditions = New ConditionExpression() { condition1 }


    C#
    -------------------------

    QueryExpression query = new QueryExpression();

    query.EntityName = "account";

    ColumnSet columns = new ColumnSet();
    columns.Attributes = new string[] { "createdon", "name" };
    query.ColumnSet = columns;


    query.Criteria = new FilterExpression();
    query.Criteria.FilterOperator = LogicalOperator.And;

    ConditionExpression condition1 = new ConditionExpression();
    condition1.AttributeName = "createdon";
    condition1.Operator = ConditionOperator.GreaterEqual;
    condition1.Values = new object[] { "2009-11-02T03:00:25-05:00" };

    query.Criteria.Conditions = new ConditionExpression[] { condition1 };

    Regards
    Vinoth

    Thursday, December 24, 2009 8:06 AM