Date Functions
Date functions in SOQL queries allow you to group or filter data by date periods such
as day, calendar month, or fiscal year.
For example, you could use the CALENDAR_YEAR() function to find the sum of the Amount values for all your opportunities for each calendar year.
1SELECT CALENDAR_YEAR(CreatedDate), SUM(Amount)
2FROM Opportunity
3GROUP BY CALENDAR_YEAR(CreatedDate)This table lists all the date functions supported by SOQL.
Note the following when you use date functions:
- You can use a date function in a WHERE clause to filter your results even if your query doesn't include a GROUP
BY clause. The following query returns data for 2009:
1SELECT CreatedDate, Amount 2FROM Opportunity 3WHERE CALENDAR_YEAR(CreatedDate) = 2009 - You can't compare the result of a date function with a date
literal in a WHERE clause. The following query doesn't
work:
1SELECT CreatedDate, Amount 2FROM Opportunity 3WHERE CALENDAR_YEAR(CreatedDate) = THIS_YEAR - You can't use a date function in a SELECT clause unless you also include it in the GROUP BY clause. There is
an exception if the field used in the date function is a date field. You can use the date field instead of the date function in the GROUP BY
clause. This doesn't work for dateTime fields. The following query doesn't work because CALENDAR_YEAR(CreatedDate) is not in a GROUP BY clause:
1SELECT CALENDAR_YEAR(CreatedDate), Amount 2FROM OpportunityThe following query works because the date field, CloseDate, is in the GROUP BY clause. This wouldn't work for a dateTime field, such as CreatedDate.
1SELECT CALENDAR_YEAR(CloseDate) 2FROM Opportunity 3GROUP BY CALENDAR_YEAR(CloseDate)