отметка времени к дате / времени с использованием dateadd - медленный запрос - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть таблица со столбцом timestamp ts - linux timestamp (bigint), я хочу преобразовать ее в datetime и использую следующий запрос:

Пример:

select * from table1
where dateadd(S, ts, '1970-01-01 00:00:00')>'2019-09-01'
and  dateadd(S, ts, '1970-01-01 00:00:00')<'2019-09-10'

Но dateadd делает запрос очень медленным, есть ли другой способ преобразовать timestamp в datetime или способ ускорить выполнение текущего запроса?

1 Ответ

1 голос
/ 24 сентября 2019

Боюсь, вы ничего не можете сделать.Вы используете столбец ts в своем выражении, который обернут в функцию, которая будет набирать возможные индексы для этого столбца.

Но вы можете переписать этот запрос, чтобы кулмн не был заключен в какую-либо функцию:

where ts > datediff(s, '1970-01-01', '2019-09-01')
and ts < datediff(s, '1970-01-01', '2019-09-10')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...