我想基于相似但不精确相等的日期时间
值来JOIN
来自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 |
+-----+-----------+---------------------+
一般来说,两个表中都有通常行的 created_at
值匹配到分钟,但不匹配到秒。
我想根据日期时间
到最接近的分钟来JOIN
这两个表。我尝试了这个,但它不起作用:
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');
关于MySQL JOIN 相似日期时间表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20180264/