将存储为hh24miss的时间转换为hh24:mi:ss

时间:2014-04-22 08:13:38

标签: oracle

我的表中有一个列,它将时间存储为hh24miss格式,即它存储为091315,这是09小时13分15秒。我需要将其转换为HH24:MI:SS并将其与YYYYMMDD格式的日期列连接。

简单地说,以下列日期:19940601和时间:091315需要转换为 01-Jan-94 09:13:15

1 个答案:

答案 0 :(得分:3)

您不应将日期存储为字符串,也不需要将时间存储在单独的字段中。 Oracle's DATE data type包括从第二个到第二个的时间。 (你需要TIMESTAMP几分之一秒。)

如果您真的不熟悉此架构,则需要将两个字符串转换为DATE

to_date(date_column || time_column, 'YYYYMMDDHH24MISS')

然后,您可以以任何您想要的格式显示它;你展示的将是:

to_char(to_date(date_column || time_column, 'YYYYMMDDHH24MISS'),
  'DD-Mon-RR HH24:MI:SS')

虽然您拥有的数据是六月,而不是一月。

SQL Fiddle demo

但实际上,请重新访问您的架构并为此使用适当的数据类型,不要将值存储为字符串。您没有验证,也没有简单的方法来检查您存储的值实际上是否代表有效的日期和时间。