sql - oracle sql将时间戳转换为日期
问题描述
我必须将不同的时区字符串转换为日期。在我的表中,我将列定义为 varchar2。其中包含如下数据。我需要转换为一个时区(例如中央时间)并从中提取日期。我尝试了不同的方法,但得到无效的月份错误或日期。你有什么建议吗?
1/16/2020 6:28:44 AM -08:00
11/8/2019 3:20:30 AM -05:00
10/25/2019 6:08:21 PM +05:30
解决方案
我相信您首先需要将其转换为带有时区广告的时间戳,然后将其转换为日期:
select CAST(to_timestamp_tz (dat_col, 'MM/DD/YYYY HH12:MI:SS AM TZH:TZM' ) AS DATE)
from test
这会将您的数据转换为特定时区:
select
to_timestamp_tz(dat_col, 'MM/DD/YYYY HH12:MI:SS AM TZH:TZM')at time zone 'Europe/Moscow'
from test
然后你可以投射:
select
CAST
(to_timestamp_tz(dat_col, 'MM/DD/YYYY HH12:MI:SS AM TZH:TZM')at time zone 'Europe/Moscow'
AS DATE)
from test
请提供您的预期结果以获得更准确的代码...
推荐阅读
- php - 在 10 月 cms 中显示验证消息中的图像索引
- sql - 根据条件更新列并为每次更新在另一个表中创建一个新行
- python - 多个属性的相同 GET 属性
- matlab - 生成 1-10 的正态分布随机整数并在 simulink 中使用
- java - Java TableView 不只填充一列
- r - 循环“ifelse”,包括 NA
- javascript - 您可以将 FileInterceptor 与 TransformPipe 一起使用吗
- python - 如何计算熊猫数据框中具有循环依赖的列?
- macos - 错误:在 MacOS 上安装 LightGBM 时“找不到 OpenMP_C”
- python - Python OpenCV 并不总是识别验证码中的矩形