You need to enable JavaScript to run this app. 如何在数据库中获取当前日期及Products表ExpDate往前30天的日期
优惠活动
大模型
产品
解决方案
定价
更多

如何在数据库中获取当前日期及Products表ExpDate往前30天的日期

产品表日期查询与计算实现

基础表信息

  • 目标表:Products
  • 表结构字段:ProductID(产品唯一标识)、ProductName(产品名称)、ExpDate(产品过期日期)
  • 现有测试数据:
    • 1001号产品:可口可乐,过期日期为2021-06-06
    • 1002号产品:百事,过期日期为2021-05-08

需求实现

1. 获取数据库当前日期往前30天的日期

不同主流数据库的日期函数存在语法差异,对应查询语句为:

-- MySQL 版本
SELECT DATE_SUB(CURDATE(), INTERVAL 30 DAY) AS date_30d_prior_to_now;

-- SQL Server 版本
SELECT DATEADD(DAY, -30, GETDATE()) AS date_30d_prior_to_now;

-- PostgreSQL 版本
SELECT CURRENT_DATE - INTERVAL '30 days' AS date_30d_prior_to_now;

-- Oracle 版本
SELECT SYSDATE - 30 AS date_30d_prior_to_now FROM DUAL;

2. 查询所有产品的过期日期,并计算每个产品过期日期往前30天的结果

直接关联表字段计算即可,对应查询语句可同时返回产品基础信息、原始过期日期、推算的预警日期:

-- MySQL 版本
SELECT
  ProductID,
  ProductName,
  ExpDate AS product_expire_date,
  DATE_SUB(ExpDate, INTERVAL 30 DAY) AS expire_alert_date
FROM Products;
-- 匹配示例数据的返回结果:
-- 1001 可口可乐 2021-06-06 2021-05-05
-- 1002 百事    2021-05-08 2021-04-08

-- SQL Server 版本
SELECT
  ProductID,
  ProductName,
  ExpDate AS product_expire_date,
  DATEADD(DAY, -30, ExpDate) AS expire_alert_date
FROM Products;

-- PostgreSQL 版本
SELECT
  ProductID,
  ProductName,
  ExpDate AS product_expire_date,
  ExpDate - INTERVAL '30 days' AS expire_alert_date
FROM Products;

-- Oracle 版本
SELECT
  ProductID,
  ProductName,
  ExpDate AS product_expire_date,
  ExpDate - 30 AS expire_alert_date
FROM Products;

验证:针对1001号产品的过期日期2021-06-06,推算往前30天的结果为2021-05-05,完全匹配需求示例的预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 23:06:02