我正在提供一个应该代表一小时的整数。因此,如果它返回1则是凌晨1点,依此类推24小时制,例如13点是下午1点。我需要在SQL中将其转换为时间。
我知道在MYSQL中他们有一个这样做的功能:
SEC_TO_TIME(TheHour * 60 * 60)
我可以在SQL中使用等效的吗?我该怎么做呢?
答案 0 :(得分:1)
有两个T-SQL功能:
DATEFROMPARTS ( year, month, day )
和
TIMEFROMPARTS ( hour, minute, seconds, fractions, precision )
然后你可以使用CONVERT,如果你需要格式化它。
答案 1 :(得分:1)
你可以这样做。
select cast(DATEADD(hour, 13, 0) as time)
好处是,即使负数或值超过24,它仍然可以工作。
答案 2 :(得分:0)
-- test data
declare @hour_table table(hour_number int)
while (select count(*) from @hour_table) < 24
begin
insert into @hour_table(hour_number)
select count(*) from @hour_table
end
-- return results with your conversion to time string
select
hour_number,
convert(varchar(8),timefromparts( hour_number, 0, 0, 0, 0 ),0) as time_string
from @hour_table