У меня есть две таблицы
table1 (id, dept_id, position_id, pin, name, last_name, create_time)
table2 (dept_id, pin, name, last_name, zone_id, create_time)
, и у них есть оба столбца create_time , в котором дата и время хранятся в этом формате (2019-12-01 18: 00: 00.568) этот столбец очень важен. Мне нужно сопоставить даты и время, чтобы левое соединение таблицы1 и таблицы2. Я могу сопоставить дату, но со временем у меня возникла проблема, время в обоих столбцах всегда имеет разницу в в секунду или в миллисекундах, поэтому я пытаюсь преобразовать в текст с помощью to_char (). Мне нужно объединить две таблицы ежедневно и ежечасно (24 часа), чтобы составить отчет
Вот мой запрос
SELECT p.dept_id, p.pin, p.name, p.last_name, p.position_id, a.zone_id, p.create_time::date, to_char(p.create_time::timestamp::time, 'HH24:MI') as time
FROM table1 p
LEFT JOIN table2 a
ON p.create_id::date=a.create_time::date AND
p.pin=a.pin AND p.dept_id=a.dept_id
Это дает мне совпадения по дате, но не по времени. Мне нужно что-то вроде этого
SELECT p.dept_id, p.pin, p.name, p.last_name, p.position_id, a.zone_id, p.create_time::date, to_char(p.create_time::timestamp::time, 'HH24:MI') as time1, to_char(a.create_time::timestamp::time, 'HH24:MI') as time2
FROM table1 p
LEFT JOIN table2 a
ON p.create_id::date=a.create_time::date AND
time1 = time2 AND
p.pin=a.pin AND
p.dept_id=a.dept_id