oracle - 从 24 小时内的字符串到时间戳
问题描述
我有一张表格,其中一列以 24-JUL-17 形式给我日期,另一列以字符串形式告诉我小时,形式为 hh:mm:ss.several_decimals 但它们是 24 小时而不是 AM/PM,可以有人指出我如何在 oracle 中添加一个将它们组合成时间戳的列?
解决方案
CAST
将日期转换为时间戳数据类型,并用于TO_DSINTERVAL
将时间列转换为 a DAY TO SECOND INTERVAL
,然后将一个添加到另一个:
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 |
推荐阅读
- javascript - iframe 到父框架通信
- unity3d - Azure 空间锚点入门:CreateAzureAnchor() 崩溃或需要很长时间才能加载
- ansible - 如何使用当前日期的库存文件运行 ansible playbook
- django - 为什么 get_current_site(request) Django 不返回端口号?
- kubernetes - kubectl config get-contexts 和 custom-columns 输出
- asp.net - ASP>NET with Oracle + Common Language Runtime 检测到无效程序
- xcode - XCode 资产目录图像 - 调整大小?
- sql - 如何在 Postgresql 中计算具有相同时间戳的值的平均值?
- python - 无论输出是真还是假,括号如何改变?
- google-cloud-platform - 是否可以强制云功能创建一个新实例来运行请求?