SQL 服务器整数到时间
SQL Server Integer to Time
我遇到了一个场景,其中 table 包含整数数据类型的时间值,我需要将它们转换为 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;
这不是准确的日期时间格式。日期时间格式类似于 DD-MM-YYYY HH:MM: SS。然而,这个问题需要更多的改进。
我遇到了一个场景,其中 table 包含整数数据类型的时间值,我需要将它们转换为 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;
这不是准确的日期时间格式。日期时间格式类似于 DD-MM-YYYY HH:MM: SS。然而,这个问题需要更多的改进。