使用sqlserver实现11位手机号码的生成,为了避免重复,使用了系统时间,和rand函数结合实现
环境是sqlserver2008,2008以上版本都适用。
代码如下:
create proc proc_randTel
@RandTel char(11) output
as
declare @r numeric(15,15),@tempR varchar(11)
select @r=rand(datepart(mm,getdate())*100000+datepart(ss,getdate())*1000+datepart(ms,getdate()))
set @tempR=convert(char(50),@r)
set @RandTel='13'+SUBSTRING(@tempR,3,4)+SUBSTRING(@tempR,7,5)
go
declare @RandTel char(11)
exec proc_randTel @RandTel output
print @RandTel
效果如下: