【问题标题】:Minutes Conversion to HH:MM Format through Update Query通过更新查询将分钟转换为 HH:MM 格式
【发布时间】:2012-03-01 11:25:33
【问题描述】:

我有一个表,其中包含持续时间作为包含分钟总和的列,我想将所有持续时间转换为 HH:MM 格式。

ECode        Duration
101           186
102           1446
103           1116

输出应该是这样的:

ECode        Duration
101           3.06
102           24.06
103           18.36

我想用 Update 语句来做,并想像这样更新所有行。 寻找可以解决我的问题的查询。在此先感谢。

【问题讨论】:

  • 您应该能够使用其他问题中给出的示例来解决这个问题。如果没有,请发布您尝试过的内容以及遇到的问题。这开始看起来很像给我codez

标签: sql-server tsql


【解决方案1】:

一种方式如下:

SELECT ECode
    CAST(Duration/ 60 AS VARCHAR(10)) + '.' 
    + RIGHT('0' + CAST(Duration % 60 AS VARCHAR(2)), 2) AS Duration
FROM YourTable

【讨论】:

  • i mGetting error in sql server 2008 when trying this query and the error message is "The data types float and int are in the modulo operator."
  • @Dharmendra - 听起来您的 Duration 列是 FLOAT 吗?您可以尝试将 CAST 围绕 Duration 应用于 INT - 例如“CAST(Duration AS INT)”代替我的示例中对“Duration”的每个引用
【解决方案2】:

可能是这样的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    相关资源
    最近更新 更多