gpt4 book ai didi

php - 在mysql中生成时间维度

转载 作者:行者123 更新时间:2023-11-29 07:14:48 24 4
gpt4 key购买 nike

我正在尝试创建一个包含以下字段的 mysql 表:年、月、日、时、分

从 10 年前到 future 10 年。

我有这个可以创建几天,但它不包括小时和分钟

SET @d0 = "2012-01-01";
SET @d1 = "2012-12-31";

SET @date = date_sub(@d0, interval 1 day);

# set up the time dimension table
DROP TABLE IF EXISTS time_dimension;
CREATE TABLE `time_dimension` (
`date` date DEFAULT NULL,
`id` int NOT NULL,
`y` smallint DEFAULT NULL,
`m` smallint DEFAULT NULL,
`d` smallint DEFAULT NULL,
`yw` smallint DEFAULT NULL,
`w` smallint DEFAULT NULL,
`q` smallint DEFAULT NULL,
`wd` smallint DEFAULT NULL,
`m_name` char(10) DEFAULT NULL,
`wd_name` char(10) DEFAULT NULL,
PRIMARY KEY (`id`)
);

# populate the table with dates
INSERT INTO time_dimension
SELECT @date := date_add(@date, interval 1 day) as date,
# integer ID that allows immediate understanding
date_format(@date, "%Y%m%d") as id,
year(@date) as y,
month(@date) as m,
day(@date) as d,
date_format(@date, "%x") as yw,
week(@date, 3) as w,
quarter(@date) as q,
weekday(@date)+1 as wd,
monthname(@date) as m_name,
dayname(@date) as wd_name
FROM T
WHERE date_add(@date, interval 1 day) <= @d1
ORDER BY date
;

我该如何修改它,使其也能显示小时和分钟?谢谢!

最佳答案

如果您选择时间维度,建议您将日期和时间维度分开,将两者组合起来将为您的维度生成 >1000 万条记录,而将日期和时间维度分开将为您提供 7300 行数据和 1440 行数据行用于时间维度(小时/分钟),然后您将需要事实表中时间维度的外键,就像您使用日期维度设计它一样。

关于php - 在mysql中生成时间维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38323275/

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