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

PostgreSQL中如何为Users表每个ID匹配多个指定日期生成扩展行

实现方法

在PostgreSQL中可以通过**交叉连接(CROSS JOIN)**手动构造的日期列表实现需求,核心是利用交叉连接将左表的每行数据与右表的每行数据做全匹配。

固定两个日期的实现代码

SELECT 
  u.id,
  u.name,
  d.date
FROM "Users" u
CROSS JOIN (
  -- 手动构造指定的两个日期行
  VALUES 
    ('2021-01-01'::DATE),
    ('2021-02-01'::DATE)
) AS d(date);

扩展:批量生成连续日期的写法

如果后续需要匹配连续的日期段,可以使用PostgreSQL内置的generate_series函数,不需要逐个写日期值,示例(生成2021年全年每月1号):

SELECT 
  u.id,
  u.name,
  d.date::DATE
FROM "Users" u
CROSS JOIN generate_series(
  '2021-01-01'::DATE,
  '2021-12-01'::DATE,
  '1 month'::INTERVAL
) AS d(date);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:45:03