我试图找到一种方法来过滤两个日期/时间字段的差异小于 90 分钟的记录。
例子:
orders.created_at = 2015-08-09 20:30:20
table2.created_at = 2015-08-09 20:09:30
我尝试过使用 TimeDiff,但我不明白语法将如何应用于此示例。
数据来自链接到相同订单信息的不同表格。目的是找到在 90 分钟内下订单但第三个字段尚未更新的示例。我将使用AND
查询仅包括第三个字段的结果NULL
我试图找到一种方法来过滤两个日期/时间字段的差异小于 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
这是否适用于两种方式,或者您是否必须扩展为“(AB < 5400 AND AB > 0)或(BA <5400 AND BA > 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))