ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 自动生成时间函数

自动生成时间函数

原创 Linux操作系统 作者:zaorv 时间:2019-06-01 11:57:07 0 删除 编辑
/*
功能: 自动生成时间函数,生成格式:HHMMSS
说明: 起止时间暂时不考虑夸小时的情况,如:7:30 到 8:30
用户定义函数中不允许使用不确定函数.使用一个视图中转随机数.
作者:Sam
创建时间:2008-10-12
完成时间:2008-10-13
*/
create view v_second
as
select cSecond=cast(floor(rand()*60) as varchar(2)),cMinute=rand()
go
--drop function getTime
create function getTime(@startTime1 as varchar(6),@endTime1 as varchar(6)) --(0730,0759)
returns varchar(8)
as
begin
declare @startTime varchar(4)
declare @endTime varchar(4)
declare @startHour varchar(2) --开始时间的小时
declare @startMinute int --开始时间的分钟
declare @endHour varchar(2) --结束时间的小时
declare @endMinute int --结束时间的分钟
declare @Hour varchar(2) --小时
declare @Minute varchar(2) --分钟
declare @second varchar(2) --秒钟(0~59)
declare @length int --有效长度,
declare @resultd varchar(8) --保存结果
set @resultd=''
set @startTime=@startTime1 --'0700'
set @endTime=@endTime1 --'0759'
set @startHour=cast(substring(@startTime,1,2) as varchar(2)) --开始时间的小时
set @startMinute=cast(substring(@startTime,3,2) as int) --开始时间的分钟
set @length=cast(substring(@EndTime,3,2) as int)-cast(@startMinute as int)+1
set @Hour =cast(substring(@EndTime,1,2) as varchar(2)) --小时
-- set @Minute=cast(floor(@startMinute + rand(1)* @length) as varchar(2)) --分钟(当是一位时要补上0)
-- set @second=cast(floor(rand()*60) as varchar(2)) --秒钟(0~59) (当是一位时要补上0)
select @second=cSecond,@minute=cast(floor(@startMinute + cMinute* @length) as varchar(2)) from v_second
set @resultd= @hour+replicate('0',2-len(@Minute))+@Minute +replicate('0',2-len(@second))+@second
--select @resultd as aaa
return(@resultd)
end
go
select dbo.getTime('0725','0759') as hms

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/729024/viewspace-564868/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-09-12

  • 博文量
    165
  • 访问量
    121094