sql - 在 Oracle 中将带时区的 Varchar 转换为时间戳
问题描述
我在将 varchar 转换为 DateTime/timestamp 时遇到问题。这是案例
ID EVENT_TIME(Varchar)
1 2020-04-12T09:25:53+0800
2 2020-04-12T09:25:53+0700
3 2020-04-12T09:25:53+0900
返回我想要的,所有时间戳都转换为+0700
ID EVENT_TIME(Datetime)
1 2020-04-12 10:25:53
2 2020-04-12 09:25:53
3 2020-04-12 11:25:53
这可能吗?以及如何使用 oracle 来做到这一点?
谢谢
解决方案
请使用以下查询将 varchar 转换为时间戳,然后使用to_timestamp_tz
再次将其转换为所需的时间格式to_char
select ID, to_char(to_timestamp_tz(EVENT_TIME, 'YYYY-MM-DD"T"HH24:MI:SS.FF TZH:TZM'), 'YYYY-MM-DD HH24:MI:SS') as event_date from table_name;
例子:
select to_char(to_timestamp_tz('2020-04-12T09:25:53+0800', 'YYYY-MM-DD"T"HH24:MI:SS.FF TZH:TZM'), 'YYYY-MM-DD HH24:MI:SS') as event_date from dual;
推荐阅读
- javascript - javascript 中的错误和 Xquery 中的查询
- html - 如何制作带有标题文本/正文的div框
- javascript - 何时从 Node.js Firebase 函数“返回”
- reactjs - Facebook Pixel 中如何计算 PageView?
- python - AttributeError:模块“tensorflow.python.framework.ops”没有属性“_TensorLike”
- typescript - 没有 React 的 Typescript 和 JSX:子类型
- google-cloud-platform - 如何使用 GCP REST API 执行查询
- javascript - 下拉菜单会在我映射的每个项目上打开我如何才能仅在我单击的项目上打开
- python - 给定一个三位数,求其位数之和。Python
- vb.net - 使用缩放和偏移平移一个点(带有 AutoScroll 的面板)