MySQL JOIN 相似日期时间表中的数据

标签 mysql datetime

我想基于相似但不精确相等的日期时间值来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/

相关文章:

php - 用于 java 的 apache solr 等重型数据库的最佳 PHP 搜索技术

php - 使用 PHP 插入 Mysql - 外键插入问题

php - 解析查询失败,但是通过PMA运行是成功的

php - symfony2 自定义时间选择字段

c# - yyyy-dd-MM 格式日期的 DateTime.TryParse 问题

javascript - 序列化年份和月份

mysql - 当存在不匹配记录时从多个表中删除

Android 将 int 时间戳转换为人类日期时间

datetime - 2个时区可以代表1个城市吗?

php - 将 Javascript 日期字符串转换为 PHP 日期