MySQL在相似的日期时间连接表中的数据

MySQL在相似的日期时间连接表中的数据,mysql,datetime,Mysql,Datetime,我想基于相似但不完全相等的datetime值,将MySQL数据库中两个表中的数据连接起来。示例数据集: account +-----+----------+---------------------+ | id | balance | created_at | +-----+----------+---------------------+ | 492 | 0.171248 | 2013-11-24 14:45:07 | | 491 | 0.171248 | 2013-11

我想基于相似但不完全相等的
datetime
值,将MySQL数据库中两个表中的数据连接起来。示例数据集:

account
+-----+----------+---------------------+
| id  | balance  | created_at          |
+-----+----------+---------------------+
| 492 | 0.171248 | 2013-11-24 14:45:07 |
| 491 | 0.171248 | 2013-11-24 14:40:07 |
+-----+----------+---------------------+

+-----+-----------+---------------------+
| id  | rate      | created_at          |
+-----+-----------+---------------------+
| 267 | 802.94621 | 2013-11-24 14:45:02 |
| 266 | 802.97802 | 2013-11-24 14:40:01 |
+-----+-----------+---------------------+
通常,两个表中都有行,其中
创建的处的值匹配到分钟,但不匹配到秒

我想根据
datetime
将这两个表连接到最接近的分钟数。我试过这个,但不起作用:

SELECT *, 
    DATE_FORMAT(`account`.`created_at`, '%Y-%m-%d %h:%i') as `joina`, 
    DATE_FORMAT(`values`.`created_at`, '%Y-%m-%d %h:%i') as `joinv`
    FROM `account`
    INNER JOIN `values` ON `joina` = `joinv`

有时,当我试图清楚地表达我的问题是什么时,我在写问题时偶然发现了正确的方法:

SELECT * 
    FROM `account`
    INNER JOIN `values` ON
        DATE_FORMAT(`account`.`created_at`, '%Y-%m-%d %h:%i') = DATE_FORMAT(`values`.`created_at`, '%Y-%m-%d %h:%i');