使用 DateDiff 查找 table_1.column A 和 table_2.column B 相差 <90 分钟的示例
Using DateDiff to find examples where table_1.column A and table_2.column B have <90 mins difference
我正在尝试找到一种方法来过滤两个 date/time 字段的差异小于 90 分钟的记录。
示例:
orders.created_at = 2015-08-09 20:30:20
table2.created_at = 2015-08-09 20:09:30
我尝试过使用 TimeDiff,但我不明白该语法如何适用于此示例。
数据来自链接到同一订单信息的不同表格。目的是找到在 90 分钟内下订单但第三个字段尚未更新的示例。我将使用 AND
查询仅包含第三个字段为 NULL
的结果
在mysql中,您需要为此使用TIMEDIFF() 或UNIX_TIMESTAMP。我更喜欢 UNIX_TIMESTAMP 解决方案,因为它更简单:
WHERE
thirdfield IS NULL
AND UNIX_TIMESTAMP(orders.created_at) - UNIX_TIMESTAMP(table2.created_at) < 5400
WHERE
thirdfield IS NULL
AND UNIX_TIMESTAMP(orders.created_at) - UNIX_TIMESTAMP(table2.created_at) < 5400
这是双向的,还是必须扩展为“(A-B < 5400 AND A-B >0) OR (B-A <5400 AND B-A > 0)”?
((UNIX_TIMESTAMP(orders.created_at) - UNIX_TIMESTAMP(table2.created_at) < 5400)
AND (UNIX_TIMESTAMP(orders.created_at) - UNIX_TIMESTAMP(table2.created_at) > 0))
OR ((UNIX_TIMESTAMP(table2.created_at) - UNIX_TIMESTAMP(orders.created_at) < 5400)
AND (UNIX_TIMESTAMP(table2.created_at) - UNIX_TIMESTAMP(orders.created_at) > 0))
我正在尝试找到一种方法来过滤两个 date/time 字段的差异小于 90 分钟的记录。
示例:
orders.created_at = 2015-08-09 20:30:20
table2.created_at = 2015-08-09 20:09:30
我尝试过使用 TimeDiff,但我不明白该语法如何适用于此示例。
数据来自链接到同一订单信息的不同表格。目的是找到在 90 分钟内下订单但第三个字段尚未更新的示例。我将使用 AND
查询仅包含第三个字段为 NULL
在mysql中,您需要为此使用TIMEDIFF() 或UNIX_TIMESTAMP。我更喜欢 UNIX_TIMESTAMP 解决方案,因为它更简单:
WHERE
thirdfield IS NULL
AND UNIX_TIMESTAMP(orders.created_at) - UNIX_TIMESTAMP(table2.created_at) < 5400
WHERE
thirdfield IS NULL
AND UNIX_TIMESTAMP(orders.created_at) - UNIX_TIMESTAMP(table2.created_at) < 5400
这是双向的,还是必须扩展为“(A-B < 5400 AND A-B >0) OR (B-A <5400 AND B-A > 0)”?
((UNIX_TIMESTAMP(orders.created_at) - UNIX_TIMESTAMP(table2.created_at) < 5400)
AND (UNIX_TIMESTAMP(orders.created_at) - UNIX_TIMESTAMP(table2.created_at) > 0))
OR ((UNIX_TIMESTAMP(table2.created_at) - UNIX_TIMESTAMP(orders.created_at) < 5400)
AND (UNIX_TIMESTAMP(table2.created_at) - UNIX_TIMESTAMP(orders.created_at) > 0))