Postgres SQL Более щадящий запрос для сравнения двух часовых поясов с минутой - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть репозиторий, который проверяет наличие дублированных дат (в минуту) следующим образом:

    public bool CheckIsDateTimeReceivedDuplicate(Guid userId, DateTime receivedDateTime)
        {
            const string query = @" SELECT EXISTS(SELECT 1 
                FROM public.allTheUserDates
                WHERE date_trunc('minute', userSavedDateTimeColumn) = date_trunc('minute', TIMESTAMPTZ :receivedDateTime) 
                AND userId= :userId)";

            return Connection.ExecuteScalar<bool>(query, new { userId, receivedDateTime});
        }

Выполнение этого непосредственно как SQL возвращает ожидаемое значение bool, но во время выполнения кода оно выдает исключение, сообщающее об ошибке около $ 2 .... что совпадает со свойством receiveDateTime.

По сути, мне нужно определить, идентичны ли два сохраненных значения DateTime минуте. Я также попытался установить Datetime в виде строки в формате ISO8601. Та же проблема. Наконец, я также попытался заключить в параметризованную строку:

date_trunc('minute', TIMESTAMPTZ ':receivedDateTime')

Все еще не повезло! Postgres Журналы бесполезны, так как говорят одно и то же сообщение и не показывают фактический запрос.

Буду признателен за любой совет, спасибо:)

...