【发布时间】:2020-05-09 01:17:00
【问题描述】:
我有两张桌子
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)
此列非常重要我需要匹配日期和时间以使 Left 加入 Table1 到 Table2
我可以匹配日期,但随着时间的推移我有问题,两列中的时间总是以秒或毫秒为单位,所以我尝试使用 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
【问题讨论】:
标签: sql postgresql left-join