首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >字符串到日期SQL

字符串到日期SQL
EN

Stack Overflow用户
提问于 2019-02-22 05:07:34
回答 2查看 72关注 0票数 1

我有一个Comments (Clob)字段,它是评论时间、评论和评论本身的集合。

我需要从字段中提取“日期”、“评论依据”。

使用正则表达式,我能够提取日期字段和comment_by字段,但日期是字符。

我无法将此字段转换为Date

注释示例:

7/18/2018 10:36:29 AM,beginj请求取消,因为步骤不再可行。

2018-05-16 8:28:04,josephav不适用于GSC

我可以使用这个正则表达式(RE)获取'date‘:

代码语言:javascript
复制
regexp_substr((dbms_lob.substr(requestcommentsdisplay,50,1)),'[^ ]+',1)

我可以使用以下正则表达式(RE)获取Comment_by名称

代码语言:javascript
复制
regexp_substr((dbms_lob.substr(requestcommentsdisplay,50,1)),'[a-z]+',1) 

因此,我使用RE提取后的日期如下:

代码语言:javascript
复制
10/5/2017
4/2/2012
12/31/2015
3/16/2014

我需要将它们转换为适当的日期,以便可以在代码中进一步使用这些日期

如有任何帮助,我们将非常感谢:)

谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-02-22 05:18:59

使用

代码语言:javascript
复制
   SELECT 
   CASE WHEN (length(<regex_string>). 
     <9)
  Then 
TO_DATE('0'||<regex_string>,'MM/DD/YYYY') 

,但是oracle也会用一位数来解析它,不过您可以尝试通过这个函数来调试和打印一位数日期。

条件。

代码语言:javascript
复制
   ELSE
TO_DATE(<regex_string>,'MM/DD/YYYY') 
    END CASE FROM TABLE;

为了将字符串转换为日期格式,您从regex_substr获得的o/p是一个字符串。

这将允许您以接收的格式读取输入,并将其转换为实际的oracles日期格式。

票数 1
EN

Stack Overflow用户

发布于 2019-02-22 06:07:36

在调用查询之前,您可以根据您所在的国家设置nls_territory参数

代码语言:javascript
复制
alter session set nls_territory = 'AMERICA';--alternatively convert to 'TURKEY' as an example

然后尝试执行以下操作

代码语言:javascript
复制
with tab(date_chr) as
(
 select '10/5/2017'  from dual union all
 select '4/2/2012'   from dual union all
 select '12/31/2015' from dual union all
 select '3/16/2014'  from dual  
)
select to_date(date_chr,'MM/DD/YYYY')
  from tab;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54816227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档