通常用 RAND 生成随机数的方法是,用相对不定的某个值作为种子值,例如累加 GETDATE 的几个部分:
SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )
使用基于 GETDATE 的算法生成种子值时,如果在算法中所用的最小 datepart 的时间间隔内多次调用 RAND,RAND 仍会生成重复值。如果对 RAND 的调用包括在单个批处理中,尤其可能出现这种情况。在单个批处理中对 RAND 的多次调用可在同一毫秒(DATEPART 的最小增量)内执行。这种情况下,请用基于除时间之外的值以生成种子值。
CAST 和 CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。
语法
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])