我正在尝试连接如下所示的两个表:
A:
ID | Time | Mode
B121 2017-10-19 11:00:00 Processed
C232 2017-10-19 12:00:00 Cancelled
B121 2017-10-19 15:00:00 Cancelled
C455 2017-10-19 18:00:00 Processed
N776 2017-10-19 11:00:00 Processed
B:
ID | Time
B121 2017-10-19 11:43:32
C232 2017-10-19 12:00:00
B121 2017-10-19 15:33:55
C455 2017-10-19 18:31:33
N776 2017-10-19 11:08:00
我想基于将它们从表A添加到表B的“时间”和“模式”列 ID和时间列。
但是表A中的时间是基于每个小时的间隔,而表B中的时间是准确的时间。
我该怎么做?谢谢!
答案 0 :(得分:2)
使用date_trunc()
尝试以下逻辑,以实现所需的输出。通过在date_trunc()
函数中使用“小时”作为参数,这会将日期时间转换为一个值,直到该值的小时。因此,条件最多只能检查“小时”值是否相同。
SELECT B.ID, B.Time, A.Time, A.Mode
FROM B
INNER JOIN A
ON B.ID = A.ID
AND date_trunc(hour, B.Time) = date_trunc(hour, A.Time)