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

如何在SQL Server中按日期批量生成重复记录

在SQL Server中批量复制记录并按日期扩展

实现思路

生成目标日期范围内的所有日期,将原表中C列为2022-10-01的5条记录与每个日期做笛卡尔关联,批量插入新记录,仅替换C列的日期值。

具体SQL代码

假设你的表名为YourTable,执行以下语句即可完成需求:

-- 生成2022-10-01至2023-02-01的所有日期序列
WITH DateRange AS (
    SELECT CAST('2022-10-01' AS DATE) AS DateValue
    UNION ALL
    SELECT DATEADD(DAY, 1, DateValue)
    FROM DateRange
    WHERE DateValue < '2023-02-01'
)
-- 批量插入扩展后的记录
INSERT INTO YourTable (A, B, C, D, E)
SELECT 
    t.A, 
    t.B, 
    dr.DateValue, 
    t.D, 
    t.E
FROM YourTable t
CROSS JOIN DateRange dr
WHERE t.C = '2022-10-01'; -- 仅针对原始的5条目标记录进行扩展

注意事项

  • 如果表存在主键,需避免主键冲突:若主键是自增列则无需额外处理;若为业务字段,需生成唯一主键值后再插入。
  • 若不想修改原表,可将INSERT INTO YourTable替换为SELECT ... INTO NewExpandedTable,把结果插入到新表中。
  • 调整WHERE DateValue < '2023-02-01'可控制日期范围,当前语句包含起始和结束当天的日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:07:06