Sql 在循环中添加时间值

Sql 在循环中添加时间值,sql,function,time,Sql,Function,Time,当我尝试添加两个时间值(例如09:00:00+18:00:00)时,我尝试创建sql用户定义函数 这里显示错误值我得到的ans是03:00:00 我的代码是 declare @StartDate datetime,@EndDate datetime,@hoursInAWorkday time set @StartDate='10/07/2013 08:00:00' set @EndDate='10/10/2013 17:00:00' declare @time1 time = '00:00:00

当我尝试添加两个时间值(例如09:00:00+18:00:00)时,我尝试创建sql用户定义函数 这里显示错误值我得到的ans是03:00:00

我的代码是

declare @StartDate datetime,@EndDate datetime,@hoursInAWorkday time
set @StartDate='10/07/2013 08:00:00'
set @EndDate='10/10/2013 17:00:00'
declare @time1 time = '00:00:00';
declare @time2 time = '09:00:00';

while @StartDate<@EndDate
Begin
set @StartDate=DATEADD(D,1,@StartDate)
set @time2= DATEADD(hh,9,@time1)
set @time1=@time2
End
声明@StartDate datetime、@enddatetime、@hoursinaworday time
设置为@StartDate='10/07/2013 08:00:00'
设置@EndDate='10/10/2013 17:00:00'
声明@time1 time='00:00:00';
声明@time2 time='09:00:00';

虽然@StartDate你的代码不会产生错误,而且得到03:00:00是正确的,因为你每次循环都要增加9小时,这篇文章可能会帮助你,例如6pm+9小时是3amok。请帮助我如何将日期时间转换为varchar。我需要将datetime设置为varchar
code
DECLARE@StartDate类型的变量DATETIME SET@StartDate='10/07/2013 08:00:00'选择CONVERT(VARCHAR,@StartDate)
code
这将为您提供“2013年10月7日上午8:00”