首页 > 解决方案 > 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

标签: sqloracle

解决方案


我相信您首先需要将其转换为带有时区广告的时间戳,然后将其转换为日期:

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

请提供您的预期结果以获得更准确的代码...


推荐阅读