Регистрация  |  Вход

Проблема с Динамическим SOQL DateTime

Добрый день. Не могу решить задачку с поиском по полю DateTime.
Например пользователь вводи в строку поиска 8/5/2019 8:26 PM. Далее с помощью APEX получаю
String datimeForSearch = DateTime.parse(8/5/2019 8:26 PM).formatGMT('yyyy-MM-dd\'T\'hh:mm:ss\'Z\'');
Вставляю в SOQL и ничего не находит. В базе в поле DateTime содержится дата следующего формата :2019-08-05T17:26:59.000+0000, при вычислении datimeForSearch в Debug отображается дата типа 2019-08-05T17:26:Z.

Добрый день. Не могу решить задачку с поиском по полю DateTime.
Например пользователь вводи в строку поиска 8/5/2019 8:26 PM. Далее с помощью APEX получаю
String datimeForSearch = DateTime.parse(8/5/2019 8:26 PM).formatGMT('yyyy-MM-dd\'T\'hh:mm:ss\'Z\'');
Вставляю в SOQL и ничего не находит. В базе в поле DateTime содержится дата следующего формата :2019-08-05T17:26:59.000+0000, при вычислении datimeForSearch  в Debug отображается дата типа 2019-08-05T17:26:Z.


Искать точное (=) совпадение по Datetime ни в коем случае нельзя! То что она показывается в формате ISO не значит что ты даже при полном совпадении (ручном вводе даты времени) что-то найдешь. В базе датавремя может храниться еще с милисекундами, но в выводе они просто округляются. Искать надо временной период (startDatetime < ... < endDatetime)

Искать точное (=) совпадение по Datetime ни в коем случае нельзя! То что она показывается в формате ISO не значит что ты даже при полном совпадении (ручном вводе даты времени) что-то найдешь. В базе датавремя может храниться еще с милисекундами, но в выводе они просто округляются. Искать надо временной период (startDatetime < ... < endDatetime) 

Дмитрий спасибо. Получился такой запрос: SELECT Name, Price__c, Amount__c,ProductType__c, ReleaseDate__c, Available__c, AddedDate__c FROM ProductTable__c WHERE AddedDate__c>2019-08-07T06:15:00Z and AddedDate__c<2019-08-07T06:16:00Z ORDER BY AddedDate__c DESC, но что-то не ищет. По отдельности если писать AddedDate__c>2019-08-07T06:15:00Z без AND все работает. Типа BETWEEN оператора есть ли что-то подобное?

Дмитрий спасибо. Получился такой запрос: SELECT Name, Price__c, Amount__c,ProductType__c, ReleaseDate__c,  Available__c, AddedDate__c FROM ProductTable__c WHERE  AddedDate__c>2019-08-07T06:15:00Z and AddedDate__c<2019-08-07T06:16:00Z ORDER BY AddedDate__c DESC, но что-то не ищет. По отдельности если писать AddedDate__c>2019-08-07T06:15:00Z без AND все работает. Типа BETWEEN оператора есть ли что-то подобное?

Все, нашел ошибку. Туплю.

Все, нашел ошибку. Туплю. 

[img]https://az705183.vo.msecnd.net/onlinesupportmedia/onlinesupport/media/skype/fa300xx/like_40x40.gif[/img]