You need to enable JavaScript to run this app. SQL Server环境下decimal(4,2)类型时间值转time()类型方法咨询
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server环境下decimal(4,2)类型时间值转time()类型方法咨询

SQL Server 特殊十进制时间转time类型解决方案

方案1:计算列实现(优先推荐)

直接在表设计器的计算列规范中填入以下公式即可,兼容SQL Server 2012及以上版本:

CONVERT(time, STUFF(FORMAT(源字段名, '00.00'), 3, 1, ':'))

操作步骤:

  • 打开SQL Server Management Studio的表设计器,新增计算列,自定义列名(如converted_time)
  • 在「计算列规范」的「公式」输入框填入上述表达式,替换「源字段名」为你的decimal(4,2)类型字段名
  • 字段类型会自动识别为time类型,若需要存储计算结果可设置「是持久化的」属性为「是」

如果需要兼容SQL Server 2012之前的版本,可使用数值拆分拼接的公式:

CONVERT(time, 
  RIGHT('0' + CAST(FLOOR(源字段名) AS VARCHAR(2)), 2) 
  + ':' 
  + RIGHT('0' + CAST(ROUND((源字段名 - FLOOR(源字段名)) * 100, 0) AS VARCHAR(2)), 2)
)

方案2:SELECT查询实现

直接在查询语句中嵌入转换逻辑即可:

SELECT 
  源字段名,
  CONVERT(time, STUFF(FORMAT(源字段名, '00.00'), 3, 1, ':')) AS 转换后时间
FROM 你的表名

验证结果

对应示例数据转换结果完全匹配:

源数据期望结果转换后结果
14.2514:2514:25:00
8.0908:0908:09:00
10.1010:1010:10:00

注意事项

如果源数据存在不符合时间规范的值(如小数部分>=60,或整数部分>=24),转换时会触发报错,可根据业务需求新增CASE判断过滤或转换异常值。

内容的提问来源于stack exchange,提问作者Craig Cunningham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 00:15:03