【问题标题】:How to convert Hours to Numeric in PostgreSQL如何在 PostgreSQL 中将小时数转换为数字
【发布时间】:2020-07-05 07:21:04
【问题描述】:

我在 postgreSQL 中有一个表,它有一个小时列,我需要将该列转换为数字列,例如如果我有 1 小时和 30 分钟,我需要将其显示为 1.5

我尝试使用 convert 和 cast,但没有成功。

有办法做到这一点吗?

列的实际数据类型是TIME

实际效果如下图:

501001  "DEMANDA"   2019    "Ciclo 10"  "01:30:00"
501001  "DEMANDA"   2019    "Ciclo 11"  "01:30:00"
501001  "DEMANDA"   2019    "Ciclo 12"  "00:30:00"
501001  "DEMANDA"   2019    "Ciclo 2"   "00:30:00"
501001  "DEMANDA"   2019    "Ciclo 3"   "00:30:00"
501001  "DEMANDA"   2019    "Ciclo 4"   "02:00:00"
501001  "DEMANDA"   2019    "Ciclo 5"   "08:00:00"
501001  "DEMANDA"   2019    "Ciclo 6"   "07:00:00"
501001  "DEMANDA"   2019    "Ciclo 7"   "23:00:00"

我需要这样显示:

501001  "DEMANDA"   2019    "Ciclo 10"  "1.5"
501001  "DEMANDA"   2019    "Ciclo 11"  "1.5"
501001  "DEMANDA"   2019    "Ciclo 12"  "0.5"
501001  "DEMANDA"   2019    "Ciclo 2"   "0.5"
501001  "DEMANDA"   2019    "Ciclo 3"   "0.5"
501001  "DEMANDA"   2019    "Ciclo 4"   "2.0"
501001  "DEMANDA"   2019    "Ciclo 5"   "8.0"
501001  "DEMANDA"   2019    "Ciclo 6"   "7.0"
501001  "DEMANDA"   2019    "Ciclo 7"   "23.0"

【问题讨论】:

  • 您的列的实际数据类型是什么?另外,请以表格文本的形式向我们展示示例数据和预期结果。
  • 抱歉,GMB,我编辑了我的问题

标签: sql postgresql date time


【解决方案1】:

你可以这样做:

extract(epoch from mycol) / 60 / 60

这会将time 转换为秒数,然后转换为相应的小时数。

【讨论】:

    猜你喜欢
    • 2014-02-23
    • 2022-10-07
    • 2022-09-30
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 2011-02-23
    • 2012-05-12
    相关资源
    最近更新 更多