Postgresql запрос между диапазонами времени в столбце отметки времени - PullRequest
0 голосов
/ 19 января 2020

Если предположить таблицу со столбцом timestamp, например

my_db=# \d l1
                                     Tabelle »public.l1«
    Spalte     |              Typ               | Sortierfolge | NULL erlaubt? | Vorgabewert 
---------------+--------------------------------+--------------+---------------+-------------
 timestamp     | timestamp(6) without time zone |              | not null      | 

Каков наиболее эффективный способ запроса тех строк, которые соответствуют

<stub>
time(timestamp)>='10:00:00' and time(timestamp)<='10:30:00'
</stub>

Я не смог найти подходит МЕЖДУ заявлением.

1 Ответ

1 голос
/ 19 января 2020

Эффективность вашего запроса будет зависеть от объема ваших данных и техники индексации. При этом вы можете просто привести столбец timestamp к time и использовать интервал, как вы предлагали:

SELECT * FROM l1
WHERE CAST(timestamp AS TIME) BETWEEN '10:00:00' AND '13:00:00';

или если вам не нужно придерживаться SQL Ansi (imho намного более прохладная запись) ..

SELECT * FROM l1
WHERE timestamp::TIME BETWEEN '10:00:00' AND '13:00:00';
...