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

如何创建2016-01-01至昨日的日期-小时维度表?

嘿,这个需求我之前帮人处理过类似的,得看你平时用什么工具干活,不同场景下最优方法不一样,我给你唠几个最实用的方案:

方案一:数据库场景(SQL)—— 直接在库内生成

如果是要在数据库(比如MySQL 8.0+、PostgreSQL)里生成这张表,那用递归CTE或者内置的序列生成函数绝对是最优解,不用额外工具,性能还靠谱,尤其是日期范围大的时候。

MySQL版本

WITH RECURSIVE date_range AS (
    SELECT '2016-01-01' AS date_val
    UNION ALL
    SELECT DATE_ADD(date_val, INTERVAL 1 DAY)
    FROM date_range
    WHERE date_val < CURDATE() - INTERVAL 1 DAY -- 取昨日日期
),
hours AS (
    SELECT 0 AS hour_val
    UNION ALL
    SELECT hour_val + 1
    FROM hours
    WHERE hour_val < 23
)
SELECT 
    DATE_FORMAT(date_val, '%d-%m-%Y') AS Date, -- 转成你要的dd-mm-yyyy格式
    hour_val AS Hour
FROM date_range
CROSS JOIN hours
ORDER BY Date, Hour;

PostgreSQL版本

PostgreSQL的日期序列生成更简洁,一行就搞定日期范围:

SELECT
    TO_CHAR(d.date_val, 'DD-MM-YYYY') AS Date,
    h.hour_val AS Hour
FROM
    generate_series('2016-01-01'::date, CURRENT_DATE - 1, '1 day') AS d(date_val),
    generate_series(0, 23) AS h(hour_val)
ORDER BY Date, Hour;
方案二:数据分析/导出场景(Python Pandas)

要是你需要生成后做数据分析,或者导出成CSV/Excel文件,那用Python的Pandas库是最省心的,几行代码就搞定所有细节:

import pandas as pd
from datetime import datetime, timedelta

# 定义起始日期和结束日期(昨日)
start_date = datetime(2016, 1, 1)
end_date = datetime.now() - timedelta(days=1)

# 直接生成每小时的时间序列
date_hour_seq = pd.date_range(start=start_date, end=end_date, freq='H')

# 转换成你要的两列表格
result_df = pd.DataFrame({
    'Date': date_hour_seq.strftime('%d-%m-%Y'),
    'Hour': date_hour_seq.hour
})

# 要是需要导出的话,直接运行下面这行
# result_df.to_csv('date_hour_table.csv', index=False)

这个方法的优势是灵活,生成的DataFrame可以直接用来做统计、可视化,完全不用手动处理日期和小时的对应关系。

方案三:办公场景(Excel)—— 无代码实现

要是你不想碰代码,纯用办公软件搞定,Excel的Power Query功能就能轻松实现,步骤也不复杂:

  • 生成日期列:在A1单元格输入2016-01-01,然后按住单元格右下角的填充柄下拉,直到出现昨日的日期。
  • 生成小时列:在B1到Y1单元格分别输入0到23,对应每个小时。
  • 逆透视生成目标表:
    1. 选中A1到Y列最后一行的区域,点击「数据」选项卡 ->「从表格/区域」,进入Power Query编辑器。
    2. 选中B到Y列的所有小时列,点击「转换」选项卡 ->「逆透视列」。
    3. 删除自动生成的「属性」和「值」列里多余的内容,把「属性」列重命名为Hour,最后把日期列格式改成dd-mm-yyyy就搞定了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:51:54