gpt4 book ai didi

mysql - 如何在 MySQL 中用时间间隔从单行创建多行

转载 作者:可可西里 更新时间:2023-11-01 08:47:27 25 4
gpt4 key购买 nike

我有一个包含开始日期、结束日期和频率的表格。使用 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

所有日期都在时间戳值中。

提前致谢。

最佳答案

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

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

您也可以使用一个过程来计算这个……但根据我的经验,拥有一个日期查找表通常非常有用,尤其是当您向其中添加月份和年份时。而且它的使用和故障排除绝对简单得多。如果是我,我会添加一个日期查找表,确保它有日期索引,然后继续。

关于mysql - 如何在 MySQL 中用时间间隔从单行创建多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24270767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com