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');