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

SQL如何计算两个日期字段的差值?统计用户首末次交易间隔的方法

你可以直接在现有统计SQL的基础上新增日期差计算字段即可,不同数据库的日期差计算函数存在差异,以下是主流数据库的实现方案,计算结果默认单位为天:

MySQL / MariaDB 实现

使用DATEDIFF函数,参数顺序为「结束日期, 开始日期」,完整SQL如下:

select 
    user_id,
    min(created_at) as first_date,
    max(created_at) as new_date,
    DATEDIFF(max(created_at), min(created_at)) as date_diff
from amazon_transactions
group by user_id;

PostgreSQL 实现

日期类型可以直接相减得到天数差,完整SQL如下:

select 
    user_id,
    min(created_at) as first_date,
    max(created_at) as new_date,
    (max(created_at)::date - min(created_at)::date) as date_diff
from amazon_transactions
group by user_id;

SQL Server 实现

使用DATEDIFF函数,第一个参数指定差值单位为day,完整SQL如下:

select 
    user_id,
    min(created_at) as first_date,
    max(created_at) as new_date,
    DATEDIFF(day, min(created_at), max(created_at)) as date_diff
from amazon_transactions
group by user_id;

Oracle 实现

日期类型去除时间部分后直接相减得到天数差,完整SQL如下:

select 
    user_id,
    min(created_at) as first_date,
    max(created_at) as new_date,
    TRUNC(max(created_at)) - TRUNC(min(created_at)) as date_diff
from amazon_transactions
group by user_id;

如果需要计算小时、月、年等其他单位的差值,调整对应函数的单位参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:54:04