T-SQL将int转换为HH:MM
在SQL Server中,如何简单地(无变量)将整数(例如8)转换为格式HH:MM=08:00?或者2,75=02:45?在使用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) 像这样把时间存储成浮子不是个好主意。为什么不改用时间呢?使用这样的浮点类型几乎可
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)