You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求提供基于不同精度datetime类型左连接两表的SQL语句

SQL实现带秒级与无秒级Datetime的左连接

要实现以table_2为左表,关联table_1获取对应value的需求,核心是将table_2中带秒的time字段转换为与table_1中无秒的date格式一致的整分钟时间,以此作为关联条件执行左连接。以下是不同主流数据库的实现语句:

MySQL/MariaDB

方法1:使用DATE_FORMAT格式化时间

SELECT 
    t2.id,
    t2.time,
    t1.value
FROM table_2 t2
LEFT JOIN table_1 t1 
    ON DATE_FORMAT(t2.time, '%Y-%m-%d %H:%i:00') = t1.date;

方法2:使用TRUNCATE截断(MySQL 8.0及以上版本支持)

SELECT 
    t2.id,
    t2.time,
    t1.value
FROM table_2 t2
LEFT JOIN table_1 t1 
    ON TRUNCATE(t2.time, MINUTE) = t1.date;

PostgreSQL

使用DATE_TRUNC函数截断到分钟级别:

SELECT 
    t2.id,
    t2.time,
    t1.value
FROM table_2 t2
LEFT JOIN table_1 t1 
    ON DATE_TRUNC('minute', t2.time) = t1.date;

SQL Server

通过DATEADD+DATEDIFF组合实现时间截断:

SELECT 
    t2.id,
    t2.time,
    t1.value
FROM table_2 t2
LEFT JOIN table_1 t1 
    ON DATEADD(MINUTE, DATEDIFF(MINUTE, 0, t2.time), 0) = t1.date;

以上语句都会将table_2的time字段转换为无秒的整分钟时间,与table_1的date字段精准匹配,最终得到你需要的左连接结果。

内容的提问来源于stack exchange,提问作者Datalearner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:05:16