如何将varchar转换为hh:mm:ss的日期时间格式?

时间:2018-06-25 14:48:22

标签: sql sql-server

我从查询中返回以下结果:

2030
1200
1400
1545

是否可以在SQL(SQL Server)中将其转换为hh:mm:ss格式的时间?

例如,上面的条目将转换如下:

2030 = 20:30:00
1200 = 12:00:00
1400 = 14:00:00
1545 = 15:45:00

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:7)

您需要stuff()

select cast(stuff(2030, 3, 0, ':') as time(0))

如果您的查询返回字符串号,则可以使用:

. . .
where charindex ('.', n) = 0;

答案 1 :(得分:1)

您可以创建类似以下的功能

CREATE FUNCTION ToTime(@myInput nvarchar(4))  
RETURNS nvarchar(7)
AS   
-- Returns the input as valid time string 
BEGIN  
    DECLARE @ret nvarchar(7);              
        SET @ret = SUBSTRING(@myInput,1,2)+':'+ SUBSTRING(@myInput,3,2)+':00'
    RETURN @ret;  
END; 

然后致电:

SELECT ToTime(2030);
SELECT ToTime(1200);
...

答案 2 :(得分:1)

使用FORMAT

select format(2030 * 100,'##:##:##')

有关FORMAT here的更多信息。