我有三个var char值为
@hour = '18'
@minute = '25'
@seconds = '45'
我需要以' 18:45'
的形式输出Select from Convert(Time,@hour+@minute+@seconds)
来自SSRS报告的小时和秒的值下拉
答案 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