C# 显示高度:从小数点算起的毫米(H.m)

C# 显示高度:从小数点算起的毫米(H.m),c#,sql,sql-server,erp,C#,Sql,Sql Server,Erp,员工的时钟以十进制形式存储在数据库中 下午4:30存储为16.50 我想使用一个新的数据库列将十进制数转换为“HH:mm” 16.50显示为“16:30” 我相信答案会是这样的 CONVERT(DATETIME,CONVERT(NVARCHAR,CLOCK_IN_TIME)) 但输出的格式不正确,通常会出现错误“从字符串转换日期和/或时间时转换失败”Hmmm。如果您使用的是SQL Server,则可以执行以下操作: dateadd(minute, floor(val) * 60

员工的时钟以十进制形式存储在数据库中

下午4:30存储为16.50

我想使用一个新的数据库列将十进制数转换为“HH:mm”

16.50显示为“16:30”

我相信答案会是这样的

CONVERT(DATETIME,CONVERT(NVARCHAR,CLOCK_IN_TIME))

但输出的格式不正确,通常会出现错误“从字符串转换日期和/或时间时转换失败”

Hmmm。如果您使用的是SQL Server,则可以执行以下操作:

dateadd(minute,
        floor(val) * 60 + 100 * (val - floor(val)),
        0)
另一种选择

Declare @T decimal(10,2) = 7.25
Select Format(DateAdd(SECOND,ceiling((@T/24)*86400),0),'HH:mm')
返回

07:15

是否仅将时间转换为日期时间?这也需要一个日期。尝试使用时间数据类型@凯文看到更新的答案,用秒。。。更精确的汉克斯。输入7:48的输出现在是12:07:48(因此小时变为分钟,分钟变为秒),需要小时到小时,分钟到分钟minutes@Kevin . . . 真有趣。当我测试它时,我使用了
minute
,但出于某种原因,我显然在答案中键入了
second