【发布时间】:2019-05-10 10:10:47
【问题描述】:
我有一个非常混乱的日期字段,它来自多个系统,每个系统都有自己的日期格式。
我有:
DD-MM-YY hh:mm:ss.ssss
DD-MON-YY hh:mm:ss
DD-MM-YYYY hh:mm:ss.ssss
所有这些都存储在 varchar2 字段中。现在我必须在日期范围之间进行搜索,这给我带来了问题。我该如何处理?
这是我尝试过的一些代码sn-ps:
标准的 substr 效果很好,但我无法解释不同的日期格式:
select substr(created_on, 1,9) as date2 from rtl.HK_Alerts
理想情况下,如果我能做到这一点:
select to_date(created_on, 'dd-mon-yy') as date_convert from rtl.HK_Alerts
那么我可以这样做:
select * from my_table
where to_date(created_on, 'dd-mon-yy') > '01-Jan-1970'
and to_date(***strong text***created_on, 'dd-mon-yy') < '31-Jan-1970'
另外,我如何解释来自不同系统的不同日期格式?不幸的是,没有我可以使用的系统标识符。
07-JAN-19 01.53.47.702000000
19 年 1 月 7 日 01.53.47.992000000
19 年 1 月 7 日 01.53.48.186000000
19 年 1 月 7 日 01.53.48.360000000
19 年 1 月 7 日 01.53.48.548000000
19 年 1 月 7 日 01.53.48.709000000
19 年 1 月 7 日 01.53.48.900000000
19 年 1 月 20 日 22.49.30.801000000
19 年 1 月 20 日 22.49.30.014000000
19 年 1 月 20 日 22.49.33.968000000
【问题讨论】:
-
Please post formatted text, not pictures。但是该图像中的所有值似乎都是相同格式的 tiehr 字符串,或者是您的客户端为显示而格式化的实际时间戳。请在您的问题(不是作为评论)和格式化文本中包含实际显示问题的示例数据。以及表中列的实际数据类型。
标签: sql oracle to-date varchar2