您的位置:首页 > 产品设计 > UI/UE

Using a date for a datetime field in a SOQL Query [duplicate]

2015-04-14 16:09 976 查看
http://salesforce.stackexchange.com/questions/8896/using-a-date-for-a-datetime-field-in-a-soql-query

5down
votefavorite
2

This question already has an answer here:

Using a date for a datetime
field in a SOQL Query criteria 2 answers

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?

soql
shareimprove
this question
asked Feb 25 '13 at 17:45





dublintech

1,21331327


marked as duplicate by Ralph
Callaway, Daniel Blackhall, eyescream, Saariko Feb
28 '13 at 8:40

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask
a new question.

add
a comment


3 Answers

activeoldestvotes

up vote5down
voteaccepted
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,

http://www.salesforce.com/us/developer/docs/soql_sosl/Content/sforce_api_calls_soql_select_dateformats.htm

shareimprove
this answer
edited Jul
2 '13 at 20:29





VictorKilo

415418

answered Feb 25 '13 at 17:52




Richard N

2,00211039

add
a comment
up vote3down
vote
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.

shareimprove
this answer
answered Feb 25 '13 at 18:38





jonnybro

959217

add
a comment
up vote3down
vote
You'll want to use a DateTime and compute the range, or use date literals.
Date inputDate = Date.newInstance(2005,10,8);
DateTime refDate1 = DateTime.newInstance(inputDate.year(), inputDate.month(), inputDate.day(), 0, 0, 0);
DateTime refDate2 = refDate1.addDays(1);

List<Account> accounts = [
select id from Account
where createdDate >= :refDate1
and createdDate < :refDate2];


You can bind a date variable into the SOQL Query as well, but the results might not be what you
expect.

5down
votefavorite
2

This question already has an answer here:

Using a date for a datetime
field in a SOQL Query criteria 2 answers

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?

soql
shareimprove
this question
asked Feb 25 '13 at 17:45





dublintech

1,21331327


marked as duplicate by Ralph
Callaway, Daniel Blackhall, eyescream, Saariko Feb
28 '13 at 8:40

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask
a new question.

add
a comment


3 Answers

activeoldestvotes

up vote5down
voteaccepted
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,

http://www.salesforce.com/us/developer/docs/soql_sosl/Content/sforce_api_calls_soql_select_dateformats.htm

shareimprove
this answer
edited Jul
2 '13 at 20:29





VictorKilo

415418

answered Feb 25 '13 at 17:52




Richard N

2,00211039

add
a comment
up vote3down
vote
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.

shareimprove
this answer
answered Feb 25 '13 at 18:38





jonnybro

959217

add
a comment
up vote3down
vote
You'll want to use a DateTime and compute the range, or use date literals.
Date inputDate = Date.newInstance(2005,10,8);
DateTime refDate1 = DateTime.newInstance(inputDate.year(), inputDate.month(), inputDate.day(), 0, 0, 0);
DateTime refDate2 = refDate1.addDays(1);

List<Account> accounts = [
select id from Account
where createdDate >= :refDate1
and createdDate < :refDate2];


You can bind a date variable into the SOQL Query as well, but the results might not be what you
expect.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐