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

如何在SQL中查询不同时间范围下产品对应的全部日期

需求说明

现有两张业务表:

  • timeframe表:存储不同产品对应的日期上下限,包含min_date、max_date、product三个字段
  • prod表:存储日期与产品对应关系,包含dates、product两个字段
    需求为查询产品在自身对应min_date到max_date区间内的所有有效日期记录。
解决方案

在原有关联逻辑的基础上,新增日期区间的筛选条件即可,改造后的SQL如下:

基础通用版本(返回所有产品符合区间要求的记录)

SELECT 
  d.product,
  p.dates AS `date`
FROM prod p
JOIN timeframe d 
  ON p.product = d.product
WHERE p.dates BETWEEN d.min_date AND d.max_date

特定产品查询版本(比如仅查询pencil的有效记录)

SELECT 
  d.product,
  p.dates AS `date`
FROM prod p
JOIN timeframe d 
  ON p.product = d.product
WHERE 
  p.dates BETWEEN d.min_date AND d.max_date
  AND d.product = 'pencil'
注意事项

如果表中日期字段是以字符串格式存储,需要先统一转换为日期类型再做比较,避免逻辑异常,以MySQL为例的转换写法参考:

WHERE 
  STR_TO_DATE(p.dates, '%m/%d/%Y') BETWEEN STR_TO_DATE(d.min_date, '%m/%d/%Y') AND STR_TO_DATE(d.max_date, '%m/%d/%Y')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:24:00