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

Excel中NSHOUR函数转换整数时间的SQL Server等效实现方法

在SQL Server中将整数时间转换为hh:mm:ss格式的方法

针对你提到的Excel场景(整数61236转成6:12:36),SQL Server里可以通过以下两种常见方式实现等效转换:

方法1:字符串拼接转换

先拆分整数的时、分、秒部分,拼接成标准时间字符串后转为time类型:

DECLARE @time_int INT = 61236;

SELECT 
    CAST(
        CONCAT(
            FLOOR(@time_int / 10000), ':',          -- 提取小时
            FLOOR((@time_int % 10000) / 100), ':',  -- 提取分钟
            @time_int % 100                         -- 提取秒
        ) AS TIME
    ) AS converted_time;

如果小时数不足两位(比如整数1236对应1:12:36),想要补零成01:12:36,可以用RIGHT('0' + CAST(部分 AS VARCHAR), 2)格式化每一部分:

DECLARE @time_int INT = 1236;

SELECT 
    CAST(
        CONCAT(
            RIGHT('0' + CAST(FLOOR(@time_int / 10000) AS VARCHAR), 2), ':',
            RIGHT('0' + CAST(FLOOR((@time_int % 10000) / 100) AS VARCHAR), 2), ':',
            RIGHT('0' + CAST(@time_int % 100 AS VARCHAR), 2)
        ) AS TIME
    ) AS converted_time;

方法2:用DATEADD构造时间

通过DATEADD函数逐步累加时、分、秒,直接生成时间值:

DECLARE @time_int INT = 61236;

SELECT 
    DATEADD(SECOND, 
        @time_int % 100, 
        DATEADD(MINUTE, 
            FLOOR((@time_int % 10000) / 100), 
            DATEADD(HOUR, 
                FLOOR(@time_int / 10000), 
                CAST('00:00:00' AS TIME)
            )
        )
    ) AS converted_time;

这种方法无需处理字符串拼接的格式问题,适合需要直接参与时间计算的场景。

两种方法都能实现和Excel中NSHOUR函数相同的转换效果,可根据实际需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:55:17