我在MySQL RDBMS中的SQL查询中有以下行
abs(timediff(tableA.enrollment_date, tableB.enrollment_date)) < 30 AND
这意味着时间之间的差异不应大于
30 seconds
。MySQL的Documentation表示
TIMEDIFF()返回的结果限于所允许的范围
TIME值。另外,您可以使用任何一个功能
TIMESTAMPDIFF()和UNIX_TIMESTAMP(),它们都返回整数。
mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',
-> '2000:01:01 00:00:00.000001');
-> '-00:00:00.000001'
mysql> SELECT TIMEDIFF('2008-12-31 23:59:59.000001',
-> '2008-12-30 01:01:01.000002');
-> '46:58:57.999999'
根据
abs()
我看到此功能可以安全地与BIGINT值一起使用。
但是现在我对此是否正确表示怀疑。
问题:如何检查两个DATETIME字段的绝对值之差是否小于30秒?
最佳答案
一种方法是:
(tableA.enrollment_date > tableB.enrollment_date - interval 30 second AND
tableA.enrollment_date < tableB.enrollment_date + interval 30 second
)
另一种方法是使用
to_seconds()
:abs(to_seconds(tableA.enrollment_date) - to_seconds(tableB.enrollment_date)) < 30
关于mysql - 如何检查两个DATETIME字段差的绝对值是否小于30秒,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46281541/