DECLARE @date_from DATETime;--声明开始日期变量
DECLARE @date_to DATETime;--声明结束日期变量
SET @date_from = '2012-06-01 19:20:36.000';--为开始日期赋值
SET @date_to = '2012-07-25 15:30:36.000';--为结束日期赋值
update [Web_OrderProduct] set [CreateDate]=
     
 (
     @date_from +   -----开始时间 加上一个以天为整的数值作为新的日期
     (   
     ABS(
     CAST(
     CAST( NewID() AS Binary(17) )--把生成的一个二进制随机数转化为整数 并取其绝对值
     AS int
     )
     )
     %                                     ----防止随机数过大   取其对开始结束时间差的模
     CAST(
     (@date_to - @date_from)     -----获取时间差   并转换成整型
     AS int
     )
     )
     )
where OrderNumber in 
  (SELECT  Number FROM Web_Order where UserRe like '%豫基123466一九九三%')
用这种方法更新的随机时间后面的时分秒都是同一个时间,求哪位大侠帮我看看

解决方案 »

  1.   

    把 NewID() 改为 checksum(某个字段)
      

  2.   

    不行啊!!我试了不行,虽然能执行但是和newID是一样的结果
      

  3.   

    checksum(某个唯一约束的字段,如id、创建时间。)
      

  4.   

    checksum和newid()都不能随机到分秒
    你这个要写的话 应该要分随机 秒随机 这样凑一起看怎么样
      

  5.   

    哥们,小弟才疏学浅啊!!拼凑我弄不好啊~!!高深的SQL语句我弄不出来,你能给我个具体的方法吗??最好能写个实例!!!我一直在线等呢!!
      

  6.   

    时间转化为整形的话只能到天,小数部分表示时分秒。若你想时分秒不一样保留小数就可以了DECLARE @date_from DATETime;--声明开始日期变量
    DECLARE @date_to DATETime;--声明结束日期变量
    SET @date_from = '2012-06-01 19:20:36.000';--为开始日期赋值
    SET @date_to = '2012-07-25 15:30:36.000';--为结束日期赋值
    --update [Web_OrderProduct] set [CreateDate]=
        
    -- (
    --  @date_from + -----开始时间 加上一个以天为整的数值作为新的日期
    --  (   
    --  ABS(
    --  CAST(
    --  CAST( NewID() AS Binary(17) )--把生成的一个二进制随机数转化为整数 并取其绝对值
    --  AS int
    --  )
    --  )
    --  % ----防止随机数过大 取其对开始结束时间差的模
    --  CAST(
    --  (@date_to - @date_from) -----获取时间差 并转换成整型
    --  AS int
    --  )
    --  )
    --  )
    --where OrderNumber in  
    --  (SELECT Number FROM Web_Order where UserRe like '%豫基123466一九九三%')
     SELECT CAST(CAST(@date_from AS DECIMAL(18,8)) + -----开始时间 加上一个以天为整的数值作为新的日期
      (   
      ABS(
      CAST(
      CAST( NewID() AS Binary(17) )--把生成的一个二进制随机数转化为整数 并取其绝对值
      AS INT
      )
      ) / 10000.0
      % ----防止随机数过大 取其对开始结束时间差的模
      CAST(
      (@date_to - @date_from) -----获取时间差 并转换成整型
      AS int
      )
      ) AS DATETIME)
      (No column name)
    2012-06-17 19:43:38.397