按日期时间合并两个表 sql
Merging two tables by date-time sql
我是 SQL 的新手,我需要一个查询来连接具有特定 conditions.The 的两个表,两个表是:
Table1:
visitIp serverTimePretty lastActionDateTime
66.87.114.131 8/12/2015 22:59 8/13/2015 2:59
66.87.114.131 8/12/2015 20:32 8/13/2015 0:32
66.87.114.131 8/12/2015 19:34 8/12/2015 23:34
66.87.114.131 12/13/2015 17:36 12/13/2015 22:36
66.87.114.131 4/23/2016 10:25 4/23/2016 14:27
Table2:
IPAddress StartDate
66.86.114.131 4/23/2016 8:25
66.70.114.131 4/23/2016 8:25
66.71.114.131 4/23/2016 8:25
66.72.114.131 4/23/2016 8:25
66.87.114.131 4/23/2016 8:25
Ip 地址是表 2 中的主键,它引用表 1 中的 VisitIp。现在我想要 Table1.visitIp= Table2.IPAddress 和 Table1.serverTimePretty - [=23= 的列] >= 2 小时。什么是 SQL 查询。
在您的加入条件中使用 DATE_ADD()
和 INTERVAL 2 HOUR
:
SELECT t1.*, t2.*
FROM Table_1 t1 INNER JOIN Table_2 t2
ON t1.visitIp = t2.IPAddress AND
t1.serverTimePretty >= DATE_ADD(t2.StartDate, INTERVAL 2 HOUR)
您可以在 sql 服务器中使用 DATEDIFF 进行小时部分的如下操作:
SELECT t1.*, t2.*
FROM Table_1 t1 INNER JOIN Table_2 t2
ON t1.visitIp = t2.IPAddress AND
DATEDIFF(hour, t1.serverTimePretty, t2.StartDate) >= 2
编辑
如前所述,您没有提到您使用的是什么类型的数据库。对于 oracle,下面的查询将起作用,Oracle 直接为您提供两个日期之间的减法:
SELECT t1.*, t2.*
FROM Table_1 t1 INNER JOIN Table_2 t2
ON t1.visitIp = t2.IPAddress AND
floor((date1-date2)*24) >= 2
我是 SQL 的新手,我需要一个查询来连接具有特定 conditions.The 的两个表,两个表是: Table1:
visitIp serverTimePretty lastActionDateTime
66.87.114.131 8/12/2015 22:59 8/13/2015 2:59
66.87.114.131 8/12/2015 20:32 8/13/2015 0:32
66.87.114.131 8/12/2015 19:34 8/12/2015 23:34
66.87.114.131 12/13/2015 17:36 12/13/2015 22:36
66.87.114.131 4/23/2016 10:25 4/23/2016 14:27
Table2:
IPAddress StartDate
66.86.114.131 4/23/2016 8:25
66.70.114.131 4/23/2016 8:25
66.71.114.131 4/23/2016 8:25
66.72.114.131 4/23/2016 8:25
66.87.114.131 4/23/2016 8:25
Ip 地址是表 2 中的主键,它引用表 1 中的 VisitIp。现在我想要 Table1.visitIp= Table2.IPAddress 和 Table1.serverTimePretty - [=23= 的列] >= 2 小时。什么是 SQL 查询。
在您的加入条件中使用 DATE_ADD()
和 INTERVAL 2 HOUR
:
SELECT t1.*, t2.*
FROM Table_1 t1 INNER JOIN Table_2 t2
ON t1.visitIp = t2.IPAddress AND
t1.serverTimePretty >= DATE_ADD(t2.StartDate, INTERVAL 2 HOUR)
您可以在 sql 服务器中使用 DATEDIFF 进行小时部分的如下操作:
SELECT t1.*, t2.*
FROM Table_1 t1 INNER JOIN Table_2 t2
ON t1.visitIp = t2.IPAddress AND
DATEDIFF(hour, t1.serverTimePretty, t2.StartDate) >= 2
编辑
如前所述,您没有提到您使用的是什么类型的数据库。对于 oracle,下面的查询将起作用,Oracle 直接为您提供两个日期之间的减法:
SELECT t1.*, t2.*
FROM Table_1 t1 INNER JOIN Table_2 t2
ON t1.visitIp = t2.IPAddress AND
floor((date1-date2)*24) >= 2