如何在sql server 2008中创建小时+分钟+秒的时间

时间:2014-09-16 10:04:38

标签: sql sql-server-2008-r2

我有三个var char值为

@hour = '18'
@minute = '25'
@seconds = '45'

我需要以' 18:45'

的形式输出
Select from Convert(Time,@hour+@minute+@seconds)

来自SSRS报告的小时和秒的值下拉

3 个答案:

答案 0 :(得分:1)

不允许隐式转换。一种解决方案可能是将格式组织为字符串,然后转换为时间,如下所示。

declare @hour smallint = '18'
declare @minute smallint = '25'
declare @seconds smallint = '45'

declare @format varchar(8) = (select (CAST(@hour as varchar(2)) + ':'+ CAST(@minute as varchar(2))+':'+ CAST(@seconds as varchar(2))))

select CAST(@format as time)

答案 1 :(得分:0)

你可以将零值加起来,如下所示:

declare @hour smallint = 18
declare @minute smallint = 25
declare @seconds smallint = 45
declare @result time

SELECT @result =  DATEADD(hour, @hour, DATEADD(minute, @minute, DATEADD(second, @seconds, 0)))

答案 2 :(得分:0)

尝试使用这种24-H日期格式,它会起作用。

SELECT CONVERT(VARCHAR(8),GETDATE(),108) AS TimeResult