将“2018 年 10 月 19 日”转换为 Presto/SQL 中的日期
convert '19th October 2018' into date in Presto/SQL
我有一列从电子邮件内容中提取的字符串。字符串的格式为:-
Tuesday 12th March 2019
我可以使用 split_part 删除星期二(删除 'day' 之前的任何内容)
但对于每月的日期部分来说,这要困难得多。如果 'th'(或 'rd' 或 'st')从该月的某天开始消失,我可以将其转换为日期,但我无法完全到达那里。
非常感谢任何建议。
非常感谢,
巴里
你能试试这个吗:
date_parse('Tuesday 12th March 2019','%W %D %M %Y')
取决于 prestosql 文档是否是最新的,这可能不起作用,因为据说:
Warning
The following specifiers are not currently supported: %D %U %u %V %w %X
编辑:除了戈登的回答,您还可以尝试使用:
date_parse(regexp_replace('Tuesday 12th March 2019','(\d+)((th|rd|nd|st) )',' '),'%W %d %M %Y')
后缀的数量是有限的,那么暴力方法如何:
date_parse(replace(replace(replace(replace(substr(str, position(' ' in str) + 1
), 'st', ''
), 'nd', ''
), 'rd', ''
), 'th'),
'%d %M %Y'
)
如果date_parse()
支持%D
就简单多了,但显然不支持
对于任何感兴趣的人,我听取了上述两位用户的建议,这些建议帮助我找到了解决方案。最后一段代码如下所示:-
日期(date_parse(trim(regexp_replace(split_part(split_part(split_part(my_data
,split_here
,2),'split_here_2
,1),split_here_3
,2),'(\d+)((th|rd|nd|st) )','$1')) ,'%e %M %Y'))
返回:-
2018-11-04
2019-04-06
2018-11-02
2019-09-19
2019-07-12
2018-11-04
2018-09-29
2018-10-19
2018-11-02
再次感谢您的帮助!!
我有一列从电子邮件内容中提取的字符串。字符串的格式为:-
Tuesday 12th March 2019
我可以使用 split_part 删除星期二(删除 'day' 之前的任何内容) 但对于每月的日期部分来说,这要困难得多。如果 'th'(或 'rd' 或 'st')从该月的某天开始消失,我可以将其转换为日期,但我无法完全到达那里。
非常感谢任何建议。
非常感谢,
巴里
你能试试这个吗:
date_parse('Tuesday 12th March 2019','%W %D %M %Y')
取决于 prestosql 文档是否是最新的,这可能不起作用,因为据说:
Warning The following specifiers are not currently supported: %D %U %u %V %w %X
编辑:除了戈登的回答,您还可以尝试使用:
date_parse(regexp_replace('Tuesday 12th March 2019','(\d+)((th|rd|nd|st) )',' '),'%W %d %M %Y')
后缀的数量是有限的,那么暴力方法如何:
date_parse(replace(replace(replace(replace(substr(str, position(' ' in str) + 1
), 'st', ''
), 'nd', ''
), 'rd', ''
), 'th'),
'%d %M %Y'
)
如果date_parse()
支持%D
就简单多了,但显然不支持
对于任何感兴趣的人,我听取了上述两位用户的建议,这些建议帮助我找到了解决方案。最后一段代码如下所示:-
日期(date_parse(trim(regexp_replace(split_part(split_part(split_part(my_data
,split_here
,2),'split_here_2
,1),split_here_3
,2),'(\d+)((th|rd|nd|st) )','$1')) ,'%e %M %Y'))
返回:-
2018-11-04
2019-04-06
2018-11-02
2019-09-19
2019-07-12
2018-11-04
2018-09-29
2018-10-19
2018-11-02
再次感谢您的帮助!!