我有一个表格,其持续时间作为包含分钟总和的列,我想将所有持续时间转换为HH:MM格式。
分钟通过更新查询转换为HH:MM格式
ECode Duration
101 186
102 1446
103 1116
输出应该是这样的:
ECode Duration
101 3.06
102 24.06
103 18.36
我想用一个更新语句来做到这一点,要更新所有这样的行。 寻找可能会削弱我的问题的查询。提前感谢。
我有一个表格,其持续时间作为包含分钟总和的列,我想将所有持续时间转换为HH:MM格式。
分钟通过更新查询转换为HH:MM格式
ECode Duration
101 186
102 1446
103 1116
输出应该是这样的:
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
的一种方法如下:
SELECT ECode
CAST(Duration/ 60 AS VARCHAR(10)) + '.'
+ RIGHT('0' + CAST(Duration % 60 AS VARCHAR(2)), 2) AS Duration
FROM YourTable
我mGetting SQL Server 2008中的错误尝试此查询时,错误消息是“数据类型float和int在模运算符不兼容”。 – Dharmendra 2012-03-01 12:07:43
@Dharmendra - 听起来像你的持续时间栏是FLOAT呢?您可以尝试在持续时间周围应用CAST - 例如, “CAST(Duration AS INT)”代替在我的例子中对“持续时间”的每个引用 – AdaTheDev 2012-03-01 12:28:27
的可能重复[十进制转换为HH:MM转换](http://stackoverflow.com/questions/9513851/decimal-to-hhmm-conversion) – 2012-03-01 12:25:19
你应该可以用你的其他问题给出的例子来解决它。如果没有,发布你已经尝试过的东西以及你卡在哪里。这开始看起来非常像*给我codez * – 2012-03-01 12:27:39