2011-03-08 16 views
6

Come faccio a fare una query SOQL come questa?query SOQL WHERE Date = 30_days_ago?

SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO 

Questo produce un errore:

MALFORMED_QUERY: 
Account WHERE LastActivityDate = 30_DAYS_AGO 
        ^
+0

Si sta eseguendo questa query in una chiamata di servizio Web o in codice Apex? la risposta di superfell è corretta se questa è in Apex. –

+0

Tramite un servizio web, ma ho appena dichiarato la data nel programma e l'ho passata come stringa alla query come una data specifica. –

+2

Supponevo che stessimo usando l'apice, mentre taggavi la domanda con l'apice. – superfell

risposta

12

Come si sta facendo questo da vertice, è possibile calcolare la data di vertice, quindi associare che nella tua ricerca, ad esempio,

date d = system.today().addDays(-30); 
Account [] acc= [select id from account where createdDate = :d]; 
14
SELECT id FROM Account WHERE LastActivityDate = LAST_N_DAYS:30 
7
Select Id from Account Where LastActivityDate = N_DAYS_AGO:30 
+0

Non abbiamo N_DAYS_AGO: 30 in forza vendita – C0DEPirate

0

La pagina del SOQL funzioni data sembra essersi trasferito qui: https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_select_dateformats.htm

Per chiarire, SOQL permette un campo di data (ad esempio LastActivityDate) per essere confrontato con un intervallo di date utilizzando un operatore di confronto. Quindi "LastActivityDate = LAST_MONTH" equivale a dire che la data è maggiore o uguale all'inizio del primo giorno del mese precedente E inferiore o uguale alla fine dell'ultimo giorno.

Problemi correlati