我想在Tableau中将字符串转换为日期。字符串看起来像这样:
2014年6月26日星期四08:11:46'时钟BST
我尝试使用Dateparse,但我得到Null值:
DATE(DATEPARSE("dd/MMMM/YYYY",[Posting Date]))
答案 0 :(得分:2)
你需要删除工作日名称,o'clocks,时区等附加内容。
所有这些都可以简单地在regex
下面实现。之后,您可以按dateparse
DATEPARSE("dd MMMM yyyy" , REGEXP_EXTRACT( [Date],'(\d+\s+\w+\s+\d+)' ))
解释正则表达式:
1. \d+ : extract one or more occurrence of numerical digits
2. \s+ : extract one or more occurrence of space chars
3. \w+ : extract one or more occurrence of alphabet chars
4. \s+ : extract one or more occurrence of space chars
5. \d+ : extract one or more occurrence of numerical digits
答案 1 :(得分:0)
我可以看到一个简单的单行方式来做到这一点。我使用regex_extract创建字段以查找每个日期部分,然后使用dateparse()重新组装部件
日期
REGEXP_EXTRACT([Value], '([0-9]{2})')
日期月
REGEXP_EXTRACT([Value],'(January|February|March|April|May|June|July|August|September|October|November|December)')
日期年
REGEXP_EXTRACT([Value], '([0-9]{4})')
日期解析
DATEPARSE("dd/MMMM/yyyy", [Date Day]+"/"+[Date Month]+"/"+[Date Year]
需要注意的一点是,正则表达式不适用于Tableau中的所有数据源