【问题标题】:converting int to hh:mm format将 int 转换为 hh:mm 格式
【发布时间】:2019-10-11 00:47:13
【问题描述】:

我有单独的整数表示小时和分钟,我需要找到一种方法来获取总小时数,然后是分钟数,最好采用 HH:MM 格式。我面临的问题是,当分钟少于十分钟时,没有前导零,我这样做是出于报告原因,所以希望能够做类似的事情

总工时

102:06 表示 102 小时 6 分钟

DECLARE @hours INT  = 102
declare @minutes int = 6

SELECT
 CONCAT(CAST (SUM((@hours*60)+@minutes)/60 AS VARCHAR(5)) , ':' , CAST (SUM((@hours*60)+@minutes)%60 AS VARCHAR(2)))

【问题讨论】:

  • "102:06 表示106小时6分钟"?!?
  • 您使用的是哪个 dbms? (您的代码是特定于产品的。)
  • 你为什么要在 SQL 中这样做?你的帖子看起来不对,102:06 怎么翻译成 106 小时 6 分钟?

标签: sql-server tsql


【解决方案1】:

在 SQL Server 中,您可以:

select concat(hours, ':',
              right('00' + minutes, 2)
             )

另一种方法是:

select concat(hours, ':',
              right(convert(varchar(255), 100 + minutes), 2)
             )

【讨论】:

    【解决方案2】:

    使用 format() 的另一个类似选项

    示例

    DECLARE @hours INT  = 102
    declare @minutes int = 6
    
    Select concat(@hours,format(@minutes,':00'))
    

    退货

    102:06
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-30
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2021-03-22
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多