26

The SF doc explains how to put a Datetime query in a SOQL query.

SELECT Id
FROM Account
WHERE CreatedDate > 2005-10-08T01:02:03Z

I need to just put in a date for this query. Something like:

SELECT Id
FROM Account
WHERE CreatedDate > 2005-10-08

But that throws an error. Any ideas?

0

3 Answers 3

24

CreatedDate is a datetime field so I guess you would need to specify the time component.

Can you do something like where you just append the time portion to be 12 am by default.

WHERE CreatedDate > 2005-10-08T00:00:00Z

Or you can use Date Literals like

 WHERE CreatedDate > YESTERDAY

For more on date formats and more literal values see,

https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_select_dateformats.htm

2
  • 2
    The advice in another answer to use "DAY_ONLY()" is the correct answer. Otherwise a developer would have to write, "where createddate >= yyyy-mm-ddT00:00:z and createddate < yyyy-mm-ddT00:00:00z" where the second date is actually the day after the first (or some similar bounded comparison). If had had to choose (and I just did today), I would use DAY_ONLY(). developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/…
    – tggagne
    Nov 2, 2018 at 13:18
  • Note that "where createddate >= yyyy-mm-ddT00:00:z and createddate < yyyy-mm-ddT00:00:00z" can use the index on CreatedDate, but DAY_ONLY() cannot. For a very large table, it maybe preferable to use NOT use DAY_ONLY. May 16, 2023 at 18:25
37

To filter a SOQL query on a datetime field with a day value, use the DAY_ONLY SOQL operator.

SELECT Id
FROM Account
WHERE DAY_ONLY(CreatedDate) > 2005-10-08

You can bind a date variable into the SOQL Query as well, but the results might not be what you expect as there the date variable would be cast into a DateTime type at run time.

5

If you want to avoid date manipulation with Apex, you could also create a custom date formula field and query off that field. Your formula would look like this:

DATEVALUE(CreatedDate)

Then just query off your custom field.

Let me know if you have any questions.

Not the answer you're looking for? Browse other questions tagged .