create table datetimes
(
id int not null primary key identity(1,1),
dates datetime not null
)要求向数据库表中插入100给随机日期或随机时间,
哪位大哥帮帮忙!!!

解决方案 »

  1.   

    沒有範圍?
    用一個臨時表記錄取值,每次用Order by newID()+Top 1,取一次在表刪除對應記錄或用newID()--轉換取
      

  2.   

    好了,这样写
    DECLARE @I INT
    SELECT @I=1
    WHILE @I<=100
    BEGIN
    INSERT INTO DATETIMES(DATES) SELECT SELECT CAST(ABS(checksum(NEWID()))%3012153-53690 AS DATETIME)
    SELECT @I=@I+1
    END
      

  3.   

    SELECT 
    TOP 100
    ROW_NUMBER()OVER(ORDER BY a.ID) AS ID,
    CAST(CHECKSUM(newID())%40357 AS DATETIME)+RAND() AS 隨機值
    FROM syscolumns a,syscolumns b舉個例子給樓主
      

  4.   

    生成指定日期范围内的100个随机日期(精确到秒):DECLARE @BDate datetime, @EDate datetime
    SET @BDate = '20090101'          --下限
    SET @EDate = '20101231 23:59:59' --上限
    SELECT n, random_datetime = DATEADD(second,ABS(CHECKSUM(NEWID()))%DATEDIFF(second,@BDate,@Edate),@BDate)
    FROM dbo.Nums
    WHERE n BETWEEN 1 AND 100
      

  5.   

    本帖最后由 roy_88 于 2010-06-30 17:23:25 编辑
      

  6.   

    本帖最后由 roy_88 于 2010-06-30 17:24:07 编辑
      

  7.   

    樓主看看,上面結果改了一下,rand()--只能一個個搶隨機把結果存在一個表變量里,在熱循環處自定義規則,如:加上判斷1日只可取一次等等