首先我上了百度和csdn上搜索了rand()函数
http://topic.csdn.net/u/20100119/20/3A4C7265-54D1-429C-AF5C-BA46C89A0463.html#r_62847622
csdn上的大神们回了贴但是我看不懂,新鸟水平不够所谓的
SELECT RAND()
 生成0到1的随机数是什么意思??
还有
SELECT RAND(2)
SELECT RAND()*2有什么区别?我提问的一堆其实最终就是为了弄清这一句代码SELECT  @r=RAND((DATEPART(yy, GETDATE()) * 100000 )+ select( DATEPART(mm, GETDATE()) * 1000 )
                  + DATEPART(dd, GETDATE()) )
    set @tempStr=convert(char(10),@r)那位帅哥美女帮忙解决,小弟永远记住你们的Id(*^__^*) 嘻嘻……

解决方案 »

  1.   

    SELECT  RAND((DATEPART(yy, GETDATE()) * 100000 )+  DATEPART(mm, GETDATE()) * 1000 
                      + DATEPART(dd, GETDATE()) )
      

  2.   

    --1.
    SELECT DATEPART(yy, GETDATE())
    SELECT DATEPART(mm, GETDATE())
    SELECT DATEPART(dd, GETDATE())
    --2.
    SELECT DATEPART(yy, GETDATE())* 100000 
    SELECT DATEPART(mm, GETDATE())* 1000 
    SELECT DATEPART(dd, GETDATE())
    --3
    SELECT RAND(DATEPART(yy, GETDATE())* 100000) 
    SELECT RAND(DATEPART(mm, GETDATE())* 1000) 
    SELECT RAND(DATEPART(dd, GETDATE()))
    --4.
    SELECT  RAND((DATEPART(yy, GETDATE()) * 100000 )+  DATEPART(mm, GETDATE()) * 1000 
                      + DATEPART(dd, GETDATE()) )
      

  3.   

    RAND() 返回一个介于 0 到 1(不包括 0 和 1)之间的伪随机 float 值。
      

  4.   

    看看这个http://wenku.baidu.com/view/e62e91eb172ded630b1cb6ec.html
      

  5.   

    那SELECT RAND(2)
    SELECT RAND()*2的区别呢?
      

  6.   

    那串代码我贴错了 不是按照yy,mm,dd的应该是    SELECT  @r=RAND((DATEPART(mm, GETDATE()) * 100000 )+ (DATEPART(ss, GETDATE()) * 1000 )
                      + DATEPART(ms, GETDATE()) )
      

  7.   

    RAND ( [ seed ] )--[seed]指的是可有可无
    提供种子值的整数表达式(tinyint、smallint 或 int)。2
    1.如果未指定 seed,则 SQL Server 数据库引擎随机分配种子值。
    2.对于指定的种子值,返回的结果始终相同。
      

  8.   

    使用同一个种子值重复调用 RAND() 会返回相同的结果。对于一个连接,如果使用指定的种子值调用 RAND(),则 RAND() 的所有后续调用将基于使用该指定种子值的 RAND() 调用生成结果。例如,以下查询将始终返回相同的数字序列。
    --实例
    SELECT RAND(100), RAND(), RAND() 
      

  9.   

    恩 问题弄清楚了!现在我通过楼上的学习,总结一下自己的理解。方便新鸟碰到类似问题的时候搜索答案!1.select rand()
    这个代表 系统会返回一个介于 0 到 1(不包括 0 和 1)之间的伪随机 float 值。
    如0.451838857702612、0.707365088352935、
    每次执行都会随机产生一个随机的值。2.select rand(N)
    这里的N代表 int 类型的整数 1、2、3、4、5...
    这样的写法就是Sql联机丛书里面的
    ------------------------------
    语法
    RAND ( [ seed ] ) 
    参数
    seed 
    可以隐式转换为 int 的整数表达式,给出种子或起始值。
    ------------------------------
    rand()括号里面的值叫做随机种子,当我们给函数指定随机种子时函数的返回值就不会改变了
    如:执行  select rand(5)  那么系统的返回值  始终是 0.713666525097956
    只要随机种子改变函数的返回值才能改变 select rand(6)、select rand(7)、select rand(N)
    函数就会返回不同的值了。
    3.select rand()*N
    与1.同理 系统会返回一个介于 0 到 N(不包括 0 和 N)之间的伪随机 float 值。
    如 select rand() *5 你执行的话 你会发现返回 0.137108582083759、2.66476830745867、3.32893630948462....
    因为没有指定随机种子所以每次返回的值都不同。
    还有就是,当初我纠结在,系统是通过什么算法来返回这些数字的,如果我知道了算法就可以然系统返回我先要指定范围的值 比如什么1~10啊  什么1~100 啊什么的
    但是其实不用知道算法,我们就知道会返回一个随机值就可以了
    如果想返回一个指定范围的随机数 参见4楼的
    http://wenku.baidu.com/view/e62e91eb172ded630b1cb6ec.html好了吧,我用最通俗最基础的方式来总结了,希望有类似问题的童鞋,通过搜索引擎能看到!
    结贴 ~我希望也能给自己分 ~~~^_^~~~