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

如何在SQL中计算日期差并仅保留整数天数?

提取日期间隔中的天数部分(Mode Analytics/PostgreSQL)

你遇到的这个问题很常见——当计算日期差得到完整的interval格式输出时,确实需要额外处理才能只保留天数部分。在Mode Analytics中,底层使用的是PostgreSQL,所以可以用以下两种方法轻松实现你的需求:

方法1:仅显示数字天数(如"3")

直接用EXTRACT(DAY FROM ...)函数从interval结果中提取天数数值:

SELECT EXTRACT(DAY FROM (date_trunc('day', timetable.time) - date_released)) AS no_days

这个函数会精准返回间隔中的整数天数,正好匹配你想要的纯数字格式。

方法2:显示"X days"格式(如"3 days")

如果希望保留"days"后缀,用字符串拼接就能实现:

SELECT CONCAT(
  EXTRACT(DAY FROM (date_trunc('day', timetable.time) - date_released)),
  ' days'
) AS no_days

或者用FORMAT函数让代码更易读:

SELECT FORMAT('%s days', EXTRACT(DAY FROM (date_trunc('day', timetable.time) - date_released))) AS no_days

补充说明

因为你已经通过date_trunc('day', timetable.time)把时间截断到了当天的起始时刻,所以两个时间相减得到的interval里的天数部分就是纯粹的整数日期差,不会有月份、年份或者时分秒的干扰,完全契合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:50:14