You need to sign in to do that
Don't have an account?
SOQL Error
Hi
In my batch apex class I have query variable. this query is dynamic based on the passed values from the controller. I am getting the datetime value from the controller and initializing that value to a dateTime variable in the BatchApex constructor and trying to compare that datetime value in the query.
I am perfectly fetching the datetime value and I can see the value in the BatchApex class also. But the problem is in the quey it is returning null(comparing with createddate> datetime value provided) resulting invalid operator in the start() method. Apprecialte help.
Here is my sample code:
global final ID CampaignId;
global dateTime DT;
public String query =
' select Call_Outcome__c,Comments__c ' +
' from testtable__c '+
' where createdDate > '+DT+'' +
' and Iscon__c = False '+
' and Isgov__c = True ';
//constructor - initializing CampaignId from the controller
global BatchTest (ID CampId, dateTime givenDateTime)
{
CampaignId=CampId;
DT= givenDateTime;
}
I wonder if you are hitting a timezone issue.
We've found that the datetime is stored against the object as a GMT time, so we have to convert the datetime that the user inputs into GMT in order to carry out a meaningful comparison.
For example, we have some code that retrieves all items for the current day. We are in the UK, so during the summer our timezone is GMT+1. If we just used the date/time that the user input, we got events from 23:00 the previous day through to 23:00 on the current day.