【问题标题】:How can I convert bigint to hours and minutes in SQL?如何在 SQL 中将 bigint 转换为小时和分钟?
【发布时间】:2020-06-27 01:08:12
【问题描述】:

我有以下问题:我有一个带有 BIGINT 列的数据库,我正在尝试将其转换为一个小时,所以我的数据库看起来像这样

id minutes hours and minutes 
------------------------------
1   400       null
2   450       null
3   421       null
4   140       null

我需要将保存为bigint 的分钟转换为小时和分钟;我怎样才能做到最好?

我需要这个结果

 id minutes hours and minutes 
 ----------------------------
    1   400       06:40
    2   450       07:30
    3   421       null
    4   140       null

我是新手,我在谷歌上搜索过,但我找不到问题的答案,有人可以帮助我或给我一个链接吗?我该怎么做?谢谢

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。
  • 为什么421被转换成null

标签: sql timestamp converters bigint


【解决方案1】:

您可以使用算术计算小时和分钟:

select floor(minutes_col / 60) as hours,
       minutes_col % 60 as minutes

一些数据库使用mod() 来做模函数。

转换为字符串高度依赖于数据库。

【讨论】:

    【解决方案2】:

    SQL 有专门用于节省时间的数据类型:time(n) (n 可以在 0-7 之间) Check here for more info about this datatype

    您的第三列应该属于这种类型。 然后,您可以从分钟列值计算小时和分钟,如下所示:

    小时 = totalminuts/60 分钟 = totalminutes%60。 然后在第三列中保存“小时:分钟”。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2023-02-22
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      • 2023-03-14
      • 1970-01-01
      • 2021-02-22
      • 2021-03-26
      • 2019-10-22
      相关资源
      最近更新 更多