首页 > 解决方案 > 从 24 小时内的字符串到时间戳

问题描述

我有一张表格,其中一列以 24-JUL-17 形式给我日期,另一列以字符串形式告诉我小时,形式为 hh:mm:ss.several_decimals 但它们是 24 小时而不是 AM/PM,可以有人指出我如何在 oracle 中添加一个将它们组合成时间戳的列?

标签: oracle

解决方案


CAST将日期转换为时间戳数据类型,并用于TO_DSINTERVAL将时间列转换为 a DAY TO SECOND INTERVAL,然后将一个添加到另一个:

SQL小提琴

Oracle 11g R2 模式设置

CREATE TABLE table_name (
  date_column DATE,
  time_column VARCHAR2(15)
);

INSERT INTO table_name ( date_column, time_column ) 
  VALUES ( DATE '2017-06-24', '12:34:56.789012' );

查询 1

SELECT CAST( date_column AS TIMESTAMP )
       + TO_DSINTERVAL( '+0 ' || time_column ) AS datetime
FROM   table_name

结果

|                   DATETIME |
|----------------------------|
| 2017-06-24 12:34:56.789012 |

推荐阅读