Fuso horário para literais de data fiscal da API Force.com?
-
22-09-2019 - |
Pergunta
Tenho uma pergunta sobre literais de datas fiscais na API Force.com (http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_soql_select_dateformats.htm):
Para qual fuso horário os intervalos de datas são calculados?
Por exemplo, suponha que executemos a consulta:
SELECIONE ID DA Oportunidade WHERE CloseDate = THIS_FISCAL_QUARTER
onde, de acordo com as configurações fiscais da nossa empresa, THIS_FISCAL_QUARTER vai de 1º de janeiro a 31 de março.
O intervalo para THIS_FISCAL_QUARTER usa...
- o fuso horário do usuário?Por exemplo, se o fuso horário do usuário for GMT-8, THIS_FISCAL_QUARTER = 1º de janeiro 00:00 GMT-8 a 31 de março 23:59 GMT-8 (ou 1º de janeiro 08:00 UTC a 31 de março 07:59 UTC)
- o fuso horário padrão da empresa (de acordo com o perfil da empresa)?Por exemplo, se o fuso horário padrão da empresa for GMT-8, THIS_FISCAL_QUARTER = 1º de janeiro 00:00 GMT-8 a 31 de março 23:59 GMT-8 (ou 1º de janeiro 08:00 UTC a 31 de março 07:59 UTC)
- UTC?THIS_FISCAL_QUARTER = 1º de janeiro às 00:00 UTC a 31 de março às 23:59 UTC
- algo mais?
Solução
Pela minha experiência (diversão com relatórios, não com consultas), a nota de baixo é válida também para literais de tempo.Portanto, ele usa a configuração de fuso horário do usuário.
Esses valores são compensados pelo seu fuso horário.Por exemplo, no fuso horário do Pacífico, a data válida mais antiga é 1699-12-31T16:00:00, ou 16h00 de 31 de dezembro de 1699.
Talvez você possa simplesmente criar um registro de teste com o campo datetime um pouco fora do trimestre fiscal e consultá-lo "WHERE mydatetimefield__c > THIS_FISCAL_QUARTER"?
Veja também http://forums.sforce.com/t5/General-Development/SOQL-Date-literal-TODAY-is-evaluated-incorrectly/mp/43607