T-SQL将int转换为HH:MM

T-SQL将int转换为HH:MM,sql,sql-server,tsql,Sql,Sql Server,Tsql,在SQL Server中,如何简单地(无变量)将整数(例如8)转换为格式HH:MM=08:00?或者2,75=02:45?在使用dateadd()后,您可以将其转换为时间: 如果需要字符串,可以改用字符串函数: select concat(format(floor(val), '00'), ':', format((val % 1) * 60, '00')) from (values (2.75)) v(val) 像这样把时间存储成浮子不是个好主意。为什么不改用时间呢?使用这样的浮点类型几乎可

在SQL Server中,如何简单地(无变量)将整数(例如8)转换为格式HH:MM=08:00?或者2,75=02:45?

在使用
dateadd()后,您可以将其转换为
时间

如果需要字符串,可以改用字符串函数:

select concat(format(floor(val), '00'), ':', format((val % 1) * 60, '00'))
from (values (2.75)) v(val)

像这样把时间存储成浮子不是个好主意。为什么不改用时间呢?使用这样的浮点类型几乎可以保证四舍五入问题您的问题有点混乱,您声明要转换
整数
值,但
2.75
不是
int
;您确定您的列不是十进制的吗?如果您确实尝试将值
2.75
存储在
int
列中,它将最终存储为
2
。其他应用程序,甚至同一项目中的其他开发人员,将很难使用此自定义时间值。使用数字而不是
时间
也无法实现便携性。大多数数据库以这样或那样的方式支持一天中的时间。没有数据库使用数字代替时间
select concat(format(floor(val), '00'), ':', format((val % 1) * 60, '00'))
from (values (2.75)) v(val)