2011-03-08 32 views
6

¿Cómo hago una consulta SOQL como esta?consulta SOQL DONDE Fecha = 30_days_ago?

SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO 

Esto produce un error:

MALFORMED_QUERY: 
Account WHERE LastActivityDate = 30_DAYS_AGO 
        ^
+0

¿Está ejecutando esta consulta en una llamada al servicio web o en un código Apex? La respuesta de Superfell es correcta si está en Apex. –

+0

A través de un servicio web, pero acabo de declarar la fecha en el programa y la pasé como una cadena a la consulta como una fecha específica. –

+2

Supuse que estabas usando apex, ya que etiquetaste la pregunta con apex. – superfell

Respuesta

12

Como estás haciendo esto desde el vértice, se puede calcular la fecha en el ápice, a continuación, enlazar que en su consulta, por ejemplo,

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

No tenemos N_DAYS_AGO: 30 en la fuerza de ventas – C0DEPirate

0

parece haber mudado aquí la página de funciones de fecha SOQL: https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_select_dateformats.htm

Para aclarar, SOQL permite un campo de fecha (por ejemplo LastActivityDate) a ser comparado con un rango de fechas usando un operador de comparación. Por lo tanto, "LastActivityDate = LAST_MONTH" equivale a decir que la fecha es mayor o igual que el comienzo del primer día del mes anterior Y menos o igual que el final del último día.

Cuestiones relacionadas