我有一张有start_date,end_date和频率的桌子。使用MySQL查询,我希望在start_date和end_date之间生成多个数据行。以下是几张桌子:
ID | start_date | end_date | frequency
----------------------------------------
1 | 1402876800 | 1403049600 | daily现在,我希望查询输出如下:
active_date | start_date | end_date | frequency
--------------------------------------------------
1402876800 | 1402876800 | 1403049600 | daily
1402963200 | 1402876800 | 1403049600 | daily
1403049600 | 1402876800 | 1403049600 | daily所有日期均为时间戳值。
提前谢谢。
发布于 2014-06-17 18:43:09
最简单的方法是创建一个日期表并使用中间条件连接它,例如,
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你也可以用一个程序来计算这个..。但是根据我的经验,拥有一个日期查找表在一般情况下是非常有用的,特别是当您做诸如添加月份和年份之类的事情时。而且,使用它和排除故障肯定要简单得多。如果是我,我会添加一个日期查找表,确保它有一个日期索引,然后继续前进。
https://stackoverflow.com/questions/24270767
复制相似问题