我想把生成的随机数,转换成字符串,然后用Substring提取,
第二条语句转换成varchar()类型后,却被截取了很多,我想请教
那位老师,能解释一下,为什么被截断了?
select rand(datename(ms,getdate()))--第一条
select convert(varchar(20),rand(datename(ms,getdate())))--第二条----------------------
0.723448835008511(1 row(s) affected)
--------------------
0.723449(1 row(s) affected)
 

解决方案 »

  1.   

    select convert(varchar(20),CONVERT(decimal(38, 37), rand(datename(ms,getdate()))))--第二条
      

  2.   

    可是限定了varchar(20)的长度了,也要四舍五入吗?
      

  3.   

    了解了,转换为decimal或numeric指定一下精度,在转换为字符串,就没问题了。
    thank you!
      

  4.   

    二楼的正解,第二条应该这样写:
    [code={sql}]
    select convert(varchar(20),CONVERT(decimal(38, 37), rand(datename(ms,getdate()))))-第二条
    [/code] 
      

  5.   

    SQL codeselectconvert(varchar(38+1),CONVERT(decimal(38,37),rand(datename(ms,getdate()))))--第二条 
      

  6.   

    select convert(varchar(39),CONVERT(decimal(38, 37), rand(datename(ms,getdate()))))