2015-01-08 2 views
3

У меня есть таблица с указанием даты и времени полей, разделенныхСоединить поля даты и времени и превращаются в даты и времени PostgreSQL

Table1

data   hora   id 
2015-01-01 11:40:06   1 
2015-01-01 15:40:06   2 
2015-01-02 15:40:06   3 
2015-01-05 10:40:06   4 
2015-01-05 15:40:06   5 
2015-01-06 08:23:00   6 

Теперь мне нужно проконсультироваться идентификатор между 2015-01-01 12 : 00: 00 12:00:00 и 2015-01-05 12:00:00, должны вернуть идентификаторы 2,3,4. Я пытаюсь преобразовать и объединить поля даты и времени, которые разделены в одном поле datetime, чтобы использовать «между», но я не могу попасть в синтаксис, может ли кто-нибудь привести пример?

+0

Просто убедитесь, что эти столбцы определены как 'date' и' time'? –

+0

Используйте для этого оператор '+', а не обычный оператор конкатенации ('||') http://www.postgresql.org/docs/current/static/functions-datetime.html – pozs

+0

Да определены дата и время , – csf

ответ

6

Это работает!

SELECT 
    * 
FROM 
    tableA 
WHERE 
    (dataemissao + hora) BETWEEN (date '2015-01-21' + time '14:00') 
    AND (date '2015-01-21' + time '18:00')