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

如何将超24小时的时分格式字符串转换为秒数?

解决超24小时时分字符串转秒数的问题

DATEDIFF(second, '00:00','47:45')失效的核心原因是:SQL时间函数要求输入为合法标准时间格式,而47:45的小时数超过23,不属于标准时间范围,无法被正确解析。

最快的实现方式是直接拆分字符串计算,跳过时间类型解析步骤,性能更优且不受时间范围限制:

SQL Server 写法

SELECT 
    (CAST(LEFT('47:45', CHARINDEX(':', '47:45') - 1) AS INT) * 3600) + 
    (CAST(RIGHT('47:45', LEN('47:45') - CHARINDEX(':', '47:45')) AS INT) * 60) AS total_seconds

MySQL 写法

SELECT 
    (CAST(SUBSTRING_INDEX('47:45', ':', 1) AS UNSIGNED) * 3600) + 
    (CAST(SUBSTRING_INDEX('47:45', ':', -1) AS UNSIGNED) * 60) AS total_seconds

逻辑说明

  1. 用字符串函数拆分冒号前后的小时数和分钟数
  2. 小时数乘3600(1小时=3600秒),分钟数乘60(1分钟=60秒)
  3. 两者相加得到总秒数

这种方法无需依赖时间类型转换,计算直接高效,支持任意大小的小时数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:05:31