将整数转换为时间

时间:2015-10-29 16:37:58

标签: sql sql-server

我正在提供一个应该代表一小时的整数。因此,如果它返回1则是凌晨1点,依此类推24小时制,例如13点是下午1点。我需要在SQL中将其转换为时间。

我知道在MYSQL中他们有一个这样做的功能:

SEC_TO_TIME(TheHour * 60 * 60)

我可以在SQL中使用等效的吗?我该怎么做呢?

3 个答案:

答案 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