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

生成2023年1月3-16日符合规则的650条TSQL随机日期

TSQL生成指定范围的工作日随机时间数据(精确到毫秒)

以下TSQL脚本可生成650条符合要求的随机日期数据:

WITH WorkDays AS (
    SELECT DateValue = CAST('2023-01-03' AS DATE)
    UNION ALL
    SELECT DATEADD(DAY, 1, DateValue)
    FROM WorkDays
    WHERE DateValue < '2023-01-16'
    AND DATENAME(WEEKDAY, DateValue) NOT IN ('Saturday', 'Sunday')
),
Numbers AS (
    SELECT TOP 650 ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS Num
    FROM sys.all_columns ac1
    CROSS JOIN sys.all_columns ac2
)
SELECT 
    RandomDateTime = CAST(wd.DateValue AS DATETIME2(3)) 
                     + CAST('09:00:00.000' AS DATETIME2(3)) 
                     + DATEADD(MILLISECOND, ABS(CHECKSUM(NEWID())) % 28800000, CAST('00:00:00.000' AS DATETIME2(3)))
FROM Numbers n
CROSS APPLY (
    SELECT TOP 1 DateValue 
    FROM WorkDays 
    ORDER BY NEWID()
) wd
ORDER BY RandomDateTime;

关键逻辑说明

  • 工作日筛选:通过递归CTEWorkDays生成2023-01-03至2023-01-16的所有日期,并用DATENAME(WEEKDAY)排除周六和周日。
  • 批量生成记录:利用sys.all_columns交叉连接快速生成650行的序列,无需手动创建临时表。
  • 精准时间控制:计算工作时段(9:00 AM到5:00 PM)的总毫秒数(28800000),通过NEWID()生成随机偏移量,确保时间落在指定区间内,且DATETIME2(3)类型保证毫秒级精度。
  • 随机分配工作日:通过CROSS APPLY结合ORDER BY NEWID()为每条记录随机选取一个工作日,避免数据集中在某几天。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:50:25