转换非标准日期字符串

时间:2020-04-21 10:51:40

标签: powerquery

我正在尝试导入一个CSV文件,该文件包含一个文本列(名为“格式化日期”),其日期如下:

20年4月18日

我尝试了很多方法将其转换为日期字段。例如,我创建了一个删除撇号的步骤,然后创建了一个使用以下表达式创建自定义列的步骤:

Date.FromText([格式化日期],“ mmm dd yy”)

但是,这会生成有关不受支持的区域性的错误。有什么办法可以做我想做的事?

1 个答案:

答案 0 :(得分:1)

您的问题有点模棱两可:

20年4月18日

您的三个字母月份的名字来自什么语言?英语,德语?那么下个月是几月:“五​​月”或“麦”?撇号怎么样:它代表2000,还是您也有1900的数据?

如果我将撇号替换为“ 20”,然后简单地将文本转换为日期格式,那么效果就很好:

#"Replaced Value" = Table.ReplaceValue(
    Source,"'","20",Replacer.ReplaceText,{"date"}),
#"Changed Type1" = Table.TransformColumnTypes(
    #"Replaced Value",{{"date", type date}})

因此,您的错误很可能是由您的区域设置引起的。但是,在转换列类型时,可以单击列标题(查询编辑器)中的“ ABC”符号,然后选择“使用语言环境...”。在下面的弹出窗口“ 使用语言环境更改类型”中,选择“数据类型” =“日期”以及适当的“语言环境”。如果您不知道,也可以尝试其他值,直到适合为止。