在SQL Server 2005

时间:2017-09-07 08:40:29

标签: sql-server tsql time sql-server-2005 date-conversion

我想将浮点时间字段8.07转换为字符串08:07。有没有简单的方法来做到这一点? 或者我应该用点分割,计算长度并相应地加零?

2 个答案:

答案 0 :(得分:3)

这个怎么样:

DECLARE @value DECIMAL(9,2) = 8.07

SELECT REPLACE(RIGHT(@value  + 1000000, 5), '.', ':');

当然,您可以将要添加的值更改为小的值。

答案 1 :(得分:0)

您可以使用以下查询:

DECLARE @t FLOAT = 8.073

SELECT @t AS t,
       ROUND(@t, 2) AS trunc_t, 
       REPLACE(RIGHT('00' + CAST(ROUND(@t, 2) AS VARCHAR(5)), 5), '.', ':') AS time_t

得到:

t      trunc_t  time_t
---------------------
8.073  8.07     08:07