首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL中从具有时间间隔的单行创建多行

如何在MySQL中从具有时间间隔的单行创建多行
EN

Stack Overflow用户
提问于 2014-06-17 18:21:12
回答 1查看 1.8K关注 0票数 3

我有一张有start_date,end_date和频率的桌子。使用MySQL查询,我希望在start_date和end_date之间生成多个数据行。以下是几张桌子:

代码语言:javascript
复制
ID | start_date |  end_date  | frequency
----------------------------------------
 1 | 1402876800 | 1403049600 | daily

现在,我希望查询输出如下:

代码语言:javascript
复制
active_date | start_date |  end_date  | frequency
--------------------------------------------------
 1402876800 | 1402876800 | 1403049600 | daily
 1402963200 | 1402876800 | 1403049600 | daily
 1403049600 | 1402876800 | 1403049600 | daily

所有日期均为时间戳值。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-17 18:43:09

最简单的方法是创建一个日期表并使用中间条件连接它,例如,

代码语言:javascript
复制
SELECT d.date AS active_date, t.start_date, t.end_date, t.frequency
FROM {your_table} AS t
INNER JOIN {date_lookup_table} AS d
ON d.date BETWEEN t.start_date AND t.end_date

你也可以用一个程序来计算这个..。但是根据我的经验,拥有一个日期查找表在一般情况下是非常有用的,特别是当您做诸如添加月份和年份之类的事情时。而且,使用它和排除故障肯定要简单得多。如果是我,我会添加一个日期查找表,确保它有一个日期索引,然后继续前进。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24270767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档