Sql server 通过更新查询将分钟转换为HH:MM格式
我有一个以持续时间为列的表,其中包含分钟数之和,我想将所有持续时间转换为HH:MM格式。Sql server 通过更新查询将分钟转换为HH:MM格式,sql-server,tsql,Sql Server,Tsql,我有一个以持续时间为列的表,其中包含分钟数之和,我想将所有持续时间转换为HH:MM格式。 输出应如下所示: ECode Duration 101 3.06 102 24.06 103 18.36 WITH CTE AS ( SELECT ECode, CAST(Duration AS INT) AS Duration FROM YourTable ) SE
输出应如下所示:
ECode Duration
101 3.06
102 24.06
103 18.36
WITH CTE
AS
(
SELECT
ECode,
CAST(Duration AS INT) AS Duration
FROM
YourTable
)
SELECT
SELECT CAST(Duration/ 60 AS VARCHAR(10)) + '.'
+ RIGHT('0' + CAST(Duration % 60 AS VARCHAR(2)), 2) AS Duration
FROM
CTE
我想用一个Update语句来完成它,并像这样更新所有的行。
正在查找可能解决我问题的查询。请提前感谢。一种方法如下:
SELECT ECode
CAST(Duration/ 60 AS VARCHAR(10)) + '.'
+ RIGHT('0' + CAST(Duration % 60 AS VARCHAR(2)), 2) AS Duration
FROM YourTable
也许是这样的:
ECode Duration
101 3.06
102 24.06
103 18.36
WITH CTE
AS
(
SELECT
ECode,
CAST(Duration AS INT) AS Duration
FROM
YourTable
)
SELECT
SELECT CAST(Duration/ 60 AS VARCHAR(10)) + '.'
+ RIGHT('0' + CAST(Duration % 60 AS VARCHAR(2)), 2) AS Duration
FROM
CTE
尝试此查询时,我在sql server 2008中遇到一个设置错误,错误消息是“模运算符中的数据类型float和int不兼容”。@Dharmendra-听起来您的持续时间列是一个float?你可以尝试对一个INT应用一个转换持续时间-例如“CAST(Duration AS INT)”来代替我的示例中对“Duration”的每个引用。你应该能够用你的另一个问题中给出的示例来计算它。如果没有,请张贴您尝试过的内容以及遇到的问题。这看起来很像给我密码