[我遇到了一个表,其中包含以整数数据类型表示的时间值,我需要将它们转换为TIME
数据类型才能使用DATEDIFF()
函数。
例如:如果列值为449,则为04:49:00:00;如果该列包含25,则02:05:00:00。
[如果有人有用户定义的过程或代码,在将它们用于Select
语句时应该会更有帮助,因为我需要将此值传递给DATEDIFF()
。
请尝试!!!
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。但是,此问题需要更多改进。