sql - 将浮点数转换为分和秒
问题描述
变量 Duration 是一个浮点数。如何将其转换为可用且可求和的时间格式?
请参阅下面的示例数据,其中 Time_Duration 是想要的结果:
SELECT '00:00:21.0000000' AS Duration , '00:21' AS Time_Duration UNION
SELECT '00:01:15.0000000' AS Duration, '01:15' AS Time_Duration UNION
SELECT '00:01:43.0000000' AS Duration, '01:43' AS Time_Duration UNION
SELECT '00:05:50.0000000' AS Duration , '05:50' AS Time_Duration
我尝试先将浮点数转换为小数,如下所示:
select
,FORMAT(FLOOR([Duration])*100 + ([Duration]-FLOOR([Duration]))*60,'00:00') as Time_Duration
FROM [dbo].[mobile]
但我收到以下错误:
操作数类型冲突:时间与浮点数不兼容
如何使“持续时间”可用?
解决方案
您可以使用下面给出的简单格式功能。
注意:我们需要:
用\
. 请参阅 MSDN 参考
declare @table table(duration varchar(20), timeduration time)
insert into @table
SELECT '00:00:21.0000000' AS Duration , '00:21' AS Time_Duration UNION
SELECT '00:01:15.0000000' AS Duration, '01:15' AS Time_Duration UNION
SELECT '00:01:43.0000000' AS Duration, '01:43' AS Time_Duration UNION
SELECT '00:05:50.0000000' AS Duration , '05:50' AS Time_Duration
select format(cast(duration as time),N'mm\:ss') as time_duration from @table
time_duration |
---|
00:21 |
01:15 |
01:43 |
05:50 |
推荐阅读
- google-app-engine - 如何在共享 VPC 中的标准 AppEngine 与另一个标准 AppEngine 之间进行通信?
- reactjs - ReactJS 从 json 数组中选择值
- python-multithreading - 无法使用 pdb 调试耐用规则 python 程序
- python - 如何获得 LSTM 多元时间序列的多个回归输出
- dynamics-crm - Microsft Dynamics SL SoHeader 和 SalesPerson 关系 - 无法链接
- javascript - 如何将以下 javascript 对象数组从一种格式排序/映射/过滤到另一种格式
- numpy - 为什么 npy 文件的大小与 jpg、png 图像相比如此之大
- matlab - 如何将 RK4 ODE Solver 从一阶调整为二阶
- maven - Liquibase 无法从 sql 脚本中读取 UTF-8
- c# - How to generate an auto-incrementing ID number that resets yearly