Dataprep 将 str yyyymmdd 日期更改为日期时间列

Dataprep change str yyyymmdd date to datetime column

我在 Dataprep 中有一列日期(字符串格式):yyyymmdd。我希望它成为一个日期时间对象。我应该申请哪个 function/transformation 才能自动获得此结果?

在这种情况下,您实际上根本不需要应用转换 — 您只需将列类型更改为 Date/Time 和 select 适当的格式选项即可。

注意: 这是 Dataprep 中最不直观的部分之一,因为您必须 select 一个 不正确的 格式(在这种情况下 yy-mm-dd) 之前你可以 drill-down 到 正确的 格式 (yyyymmdd).

这是日期/时间类型的屏幕截图 window 来说明这一点:

虽然不直观,但这会在未来的操作中正确地将列视为日期,包括在导出操作(例如 BigQuery)中分配正确的类型。

通过 UI,这将生成以下 Wrangle 脚本:

settype col: YourDateCol customType: 'Datetime','yy-mm-dd','yyyymmdd' type: custom

根据 documentation,这也应该有效(而且更简洁):

settype col: YourDateCol type: 'Datetime','yy-mm-dd','yyyymmdd'

请注意,如果您绝对需要在函数上下文中执行此操作,则可以使用 SUBSTRING/LEFT/RIGHT and pass them to the DATE or DATETIME function to construct a datetime object. As you've probably already found, DATEFORMAT 提取日期部分 will return NULL if the source column isn't already of type Datetime.

(不过,从性能的角度来看,对于大型数据集来说,仅更改或创建具有正确类型的新列比必须对如此多的行执行这些额外操作要有效得多。 )