代码之家  ›  专栏  ›  技术社区  ›  Z Kay

将字符串转换为Tableau中的日期

  •  2
  • Z Kay  · 技术社区  · 9 年前

    我想在Tableau中将字符串转换为日期。字符串如下:

    2014年6月26日星期四英国夏令时08:11:46

    我尝试使用Dateparse,但得到Null值:

    DATE(DATEPARSE("dd/MMMM/YYYY",[Posting Date]))
    
    2 回复  |  直到 9 年前
        1
  •  2
  •   minatverma    9 年前

    你需要去掉诸如工作日名称、时钟、时区等额外内容。

    所有这些都可以通过以下方式实现 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 
    
        2
  •  0
  •   Stephen Berndt    9 年前

    我看不出一个简单的单线方法可以做到这一点。我用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]

    Here is an example

    需要注意的是,regex不能处理Tableau中的所有数据源