Jak utworzyć zapytanie SOQL w ten sposób?Zapytanie SOQL GDZIE Data = 30_dni_ago?
SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO
To daje błąd:
MALFORMED_QUERY:
Account WHERE LastActivityDate = 30_DAYS_AGO
^
Jak utworzyć zapytanie SOQL w ten sposób?Zapytanie SOQL GDZIE Data = 30_dni_ago?
SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO
To daje błąd:
MALFORMED_QUERY:
Account WHERE LastActivityDate = 30_DAYS_AGO
^
Jak robisz to z wierzchołka można obliczyć datę w wierzchołku, następnie wiązania że w zapytaniu, na przykład
date d = system.today().addDays(-30);
Account [] acc= [select id from account where createdDate = :d];
SELECT id FROM Account WHERE LastActivityDate = LAST_N_DAYS:30
Select Id from Account Where LastActivityDate = N_DAYS_AGO:30
Nie mamy N_DAYS_AGO: 30 w salesforce – C0DEPirate
LAST_WEEK
i LAST_MONTH
są również łatwe i działa dobrze.
SELECT id FROM Account WHERE LastActivityDate > LAST_MONTH
Więcej danych spojrzeć na ten link: http://www.salesforce.com/us/developer/docs/officetoolkit/Content/sforce_api_calls_soql_select_dateformats.htm
Na stronie od daty funkcji SOQL wydaje się być przeniesiony tutaj: https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_select_dateformats.htm
celu wyjaśnienia, SOQL pozwala pole daty (np LastActivityDate) do porównać z datami za pomocą operatora porównania. Tak więc "LastActivityDate = LAST_MONTH" jest równoznaczne z powiedzeniem, że data jest większa lub równa początkowi pierwszego dnia poprzedniego miesiąca ORAZ mniejsza niż lub równa końca ostatniego dnia.
Czy wykonujesz to zapytanie w wywołaniu usługi internetowej lub w kodzie Apex? Odpowiedź superfell jest poprawna, jeśli jest w Apex. –
Za pośrednictwem usługi internetowej, ale właśnie zadeklarowałem datę w programie i przekazałem ją jako ciąg do zapytania jako konkretnej daty. –
Zakładam, że używasz wierzchołka, ponieważ otagowałeś pytanie wierzchołkiem. – superfell