¿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
^
¿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
^
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];
SELECT id FROM Account WHERE LastActivityDate = LAST_N_DAYS:30
Select Id from Account Where LastActivityDate = N_DAYS_AGO:30
No tenemos N_DAYS_AGO: 30 en la fuerza de ventas – C0DEPirate
LAST_WEEK
y LAST_MONTH
también son fáciles y funcionan bien.
SELECT id FROM Account WHERE LastActivityDate > LAST_MONTH
Para más datos vistazo a este enlace: http://www.salesforce.com/us/developer/docs/officetoolkit/Content/sforce_api_calls_soql_select_dateformats.htm
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.
¿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. –
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. –
Supuse que estabas usando apex, ya que etiquetaste la pregunta con apex. – superfell