1

我正在使用 Power Query 访问我的 PostgreSQL 数据库并按某些日期参数过滤我的数据。但是,对于我的一个数据库表,日期格式是YYYYMM(201510)。

是否可以将此格式转换为实际的日期格式?

4

4 回答 4

1

Power Query 将YYYY-MM或识别YYYYMMDD为有效的日期格式,但不是YYYYMM. 这是插入连字符然后更改类型的解决方案:

  1. 按字符数拆分文本,4
  2. 删除自动号码类型推断步骤。
  3. 使用自定义分隔符合并列-
  4. 将类型更改为日期

这是一个简单的例子:

let
    Source = Csv.Document("201510
201502"),
    SplitColumnByPosition = Table.SplitColumn(Source,"Column1",Splitter.SplitTextByPositions({0, 4}, false),{"Column1.1", "Column1.2"}),
    MergedColumns = Table.CombineColumns(SplitColumnByPosition,{"Column1.2", "Column1.1"},Combiner.CombineTextByDelimiter("-", QuoteStyle.None),"Merged"),
    ChangedType = Table.TransformColumnTypes(MergedColumns,{{"Merged", type date}})
in
    ChangedType
于 2015-10-12T15:52:35.747 回答
0

在这种情况下,我更喜欢创建一个新的自定义列,然后删除原始列。在您的情况下,自定义列的公式如下所示:

=Text.Range([DateColumn],0,4) & "-" & Text.Range([DateColumn],4,2) & "-01"

添加自定义列后,您可以将其格式更改为日期。

如需进一步参考,请查看 M 公式参考:https ://msdn.microsoft.com/en-us/library/mt211003.aspx

于 2016-07-05T12:17:23.293 回答
0
select to_date('201510', 'YYYYMM');
  to_date   
------------
 2015-10-01
于 2015-10-12T10:27:02.903 回答
0

请试试:

=DATE(LEFT(A1,4),RIGHT(A1,2),1)
于 2015-10-12T09:50:36.270 回答