我有一张买入/卖出交易表,我将其分开,只有一张买入交易表和一张卖出交易表。我想重新加入这两个表格,并将买入与产品相同的卖出相匹配,买入和卖出之间的执行时间相差10到30秒。
我试图将两个表连接起来并使用DATEADD作为时间增量,但是我返回了一条错误消息。
理想情况下,我希望新表包含buy表和sell表中的所有列,但匹配所需的列是product和execution_time。
我收到错误消息: - "invalid data type comparison in predicate"
ON b.product = a.product AND b.execution_time >= DATEADD(second, 30, a.execution_time)
30秒的部分比现在的10秒更重要,它可以是0-30。
答案 0 :(得分:3)
您可以使用Sybase Datediff获得所需的结果
<强> MYSQL: - 强>
SELECT B.*
from tblBuy B INNER JOIN tblSell S
ON B.product = S.product
Where TIME_TO_SEC(TIMEDIFF(B.execution_time ,S.execution_time )) BETWEEN 10 AND 30;
<强> SYBASE: - 强>
SELECT B.*
from tblBuy B INNER JOIN tblSell S
ON B.product = S.product
Where DATEDIFF(SECOND, B.execution_time, S.execution_time) BETWEEN 10 AND 30;