【问题标题】:Change SQL time format to HH31:MI:SS将 SQL 时间格式更改为 HH31:MI:SS
【发布时间】:2016-05-18 15:34:31
【问题描述】:

我想插入HH31:MI:SS 格式的时间值,而不是典型的HH24:MI:SS。这种格式不是我的,GTFS 允许超过 24 小时。

例如,

insert into stop_times values((to_date('28:20:02", "HH31:MI:SS")), 
(to_date('31:02:25", "HH31:MI:SS)));

但是,我收到一条错误消息:date format not recognized

是否可以将默认格式(HH24:MI:SS)更改为HH31:MI:SS

我使用 SQL Developer。

【问题讨论】:

  • 您期望的输出是什么?我不熟悉一天有超过 24 小时。
  • 您是否要显示经过的时间?到目前为止,您尝试过什么?
  • @Siyual 哈哈,我也是!显然,输出将是HH31:MM:SS 格式。
  • 据我所知,没有数据库支持 GTFS 时间。您最好的选择可能是转换为秒,将数字存储为整数,然后在提取时将其解析回小时、分钟和秒。不理想,但要怪 Google 想出这种愚蠢的格式。
  • @George 这就是您要寻找的答案吗?如果是这样,请将其标记为答案。或者让我知道还需要什么。

标签: sql time oracle11g oracle-sqldeveloper gtfs


【解决方案1】:

试试这个:不确定你期望的输出是什么: 您给31:02:25 的时间量变为111745 秒。现在将这些秒数转换为以下内容:

SELECT 
    TO_CHAR(TRUNC(x/3600),'FM9900') || ':' ||
    TO_CHAR(TRUNC(MOD(x,3600)/60),'FM00') || ':' ||
    TO_CHAR(MOD(x,60),'FM00')
FROM DUAL

x 是秒数

TO_CHAR 应该可以处理 9999 小时!

【讨论】:

    猜你喜欢
    • 2014-11-18
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    相关资源
    最近更新 更多