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

如何在SQL中基于日期与天数字段计算生成到期日期?

问题描述

现有一张包含以下字段的表:

datedate_add
2022-08-015
2022-08-013

需要通过SQL查询生成新字段due_date,取值为date字段的日期加上date_add字段的天数,得到如下结果:

datedate_adddue_date
2022-08-0152022-08-06
2022-08-0132022-08-04
解决方案

不同数据库系统的日期加法语法略有差异,以下是主流数据库的实现方式:

MySQL/MariaDB

可以使用DATE_ADD()函数,或者更简洁的+ INTERVAL语法:

SELECT 
  date,
  date_add,
  DATE_ADD(date, INTERVAL date_add DAY) AS due_date
FROM your_table_name;

简洁写法:

SELECT 
  date,
  date_add,
  date + INTERVAL date_add DAY AS due_date
FROM your_table_name;

PostgreSQL

通过拼接字符串转换为INTERVAL类型后相加,或者使用make_interval()函数:

SELECT 
  date,
  date_add,
  date + (date_add || ' days')::INTERVAL AS due_date
FROM your_table_name;

使用函数的写法:

SELECT 
  date,
  date_add,
  date + make_interval(days => date_add) AS due_date
FROM your_table_name;

SQL Server

使用DATEADD()函数指定天数偏移:

SELECT 
  date,
  date_add,
  DATEADD(DAY, date_add, date) AS due_date
FROM your_table_name;

Oracle

Oracle支持日期直接与整数相加(整数代表天数):

SELECT 
  date,
  date_add,
  date + date_add AS due_date
FROM your_table_name;

SQLite

通过DATE()函数拼接天数参数实现:

SELECT 
  date,
  date_add,
  DATE(date, '+' || date_add || ' days') AS due_date
FROM your_table_name;

注意:将上述代码中的your_table_name替换为你实际的表名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 08:36:22