You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何将HH:MM:SS格式的varchar转换为仅显示时分秒的datetime

原因说明

SQL Server 中的datetime类型本身强制包含日期+时间两部分,当你仅传入时间字符串转换为datetime时,系统会自动补全默认日期1900-01-01,因此不存在仅包含时分秒的datetime类型值。要实现你的需求,可以选择以下两种方案:


方案1:使用time类型(推荐,SQL Server 2008及以上版本支持)

time是SQL Server专门用于存储纯时间数据的类型,直接转换即可得到无日期前缀的结果:

DECLARE @Duration Varchar(10)
SET @Duration = '00:01:23'

-- 注意原代码中变量名漏写了@符号,此处修正
SELECT CONVERT(time, @Duration, 8) AS duration

输出结果:

00:01:23.0000000

如果不需要小数秒,可以进一步做格式化处理。


方案2:转换为指定格式的字符串

如果你需要的是严格HH:MM:SS格式的输出结果,直接转换为长度为8的字符串即可:

DECLARE @Duration Varchar(10)
SET @Duration = '00:01:23'

SELECT CONVERT(varchar(8), @Duration, 8) AS duration

输出结果完全符合你的预期:

00:01:23

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:36:03