在网上看到一段随机数代码如下,请问月为什么要乘100000,秒为什么要乘1000呢??if exists (select * from sysobjects where name='proc_randCardID')
drop procedure proc_randCardID
go
create procedure proc_randCardID
@randCardID varchar(20) output
as
declare @r numeric(15,8),@tempstr varchar(10)
select @r=rand((datepart(mm,getdate())*100000)+(datepart(ss,getdate())*1000)+datepart(ms,getdate()))
set @tempstr=cast(@r as varchar)
set @randCardID='1010 3576 '+substring(@tempstr,3,4)+' '+substring(@tempstr,5,4)
go
drop procedure proc_randCardID
go
create procedure proc_randCardID
@randCardID varchar(20) output
as
declare @r numeric(15,8),@tempstr varchar(10)
select @r=rand((datepart(mm,getdate())*100000)+(datepart(ss,getdate())*1000)+datepart(ms,getdate()))
set @tempstr=cast(@r as varchar)
set @randCardID='1010 3576 '+substring(@tempstr,3,4)+' '+substring(@tempstr,5,4)
go
解决方案 »
- SQL 更新时间字段问题
- 触发器向其他服务器插入数据库,提示OLE DB 提供程序 'MSDASQL' 无法启动分布式事务。
- 求SQL语句!
- 请问如何 用 触发器 限制 更新或删除时 的 where 条件内容 ??????????? 急!!!!!!!!!!!!
- 这个sql如何写?
- GhostXP SP3不支持SQL Server 2008 R2吗?有办法解决这问题吗?
- aa是一个SMALLDATETIME型,请问它如何跟 date()比较大小?????
- 统计: 13号到1号,每天都登陆的玩家?
- 请教高手:在Oracle的plsql里怎样使用数组?plsql支持递归算法吗?
- 如何实现数据库的导入、导出?????
- xp安装sql2005之后无法连接到本机电脑
- 在线等一SQL汇总语句!
@randCardID varchar(20) output
as
declare @r numeric(15,8),@tempstr varchar(10)
select @r=rand((datepart(mm,getdate())*100000)+(datepart(ss,getdate())*1000)+datepart(ms,getdate()))
set @tempstr=cast(@r as varchar)
set @randCardID='时间: '+substring(@tempstr,3,4)+' '+substring(@tempstr,5,4)
select @randCardID
go
创建后运行:
exec proc_randCardID ''
然后你不停执行exec proc_randCardID '' 就会知道,其实这里只不过是一个计算时间的程序,只不过精确的位数比较多而已。
而上面的倍数,如果你改成1 ,结果都是一样的! 我觉得是毫无意义!!!