SQL Server整数[保留时间]

问题描述 投票:-3回答:1

[我遇到了一个表,其中包含以整数数据类型表示的时间值,我需要将它们转换为TIME数据类型才能使用DATEDIFF()函数。

例如:如果列值为449,则为04:49:00:00;如果该列包含25,则02:05:00:00。

[如果有人有用户定义的过程或代码,在将它们用于Select语句时应该会更有帮助,因为我需要将此值传递给DATEDIFF()

sql-server converters sql-timestamp
1个回答
0
投票

请尝试!!!

    CREATE FUNCTION dbo.udfConv(
    @quantity INT
)
RETURNS VARCHAR(25)
AS 
BEGIN
    RETURN (SELECT CAST(CASE WHEN LEN(@quantity)=2 THEN '0'+LEFT(@quantity,1) +':'+'0'+RIGHT(@quantity,1)+':00:00'
            WHEN LEN(@quantity)=3 THEN '0'+LEFT(@quantity,1) +':'+RIGHT(@quantity,2)+':00:00'
            WHEN LEN(@quantity)=4 THEN LEFT(@quantity,2) +':'+RIGHT(@quantity,2)+':00:00'
 END AS TIME))
END;

这不是确切的日期时间格式。 DATETIME FORMAT有点像DD-MM-YYYY HH:MM:SS。但是,此问题需要更多改进。

© www.soinside.com 2019 - 2024. All rights reserved.