В этом случае вам вообще не нужно применять преобразование - вы можете просто изменить тип столбца на Дата / Время и выбрать соответствующие параметры формата.
Примечание: Это одна из наименее интуитивно понятных частей Dataprep, так как вам нужно выбрать неправильный формат (в данном случае yy-mm-dd
), прежде чем вы сможете перейти к правильному формату (yyyymmdd
).
Вот скриншот окна типа Дата / Время, чтобы проиллюстрировать это:
Хотя это не интуитивно понятно, это будет правильно обрабатывать столбецв качестве даты в будущих операциях, включая назначение правильного типа в операциях экспорта (например, BigQuery).
Через пользовательский интерфейс это сгенерирует следующий сценарий споров:
settype col: YourDateCol customType: 'Datetime','yy-mm-dd','yyyymmdd' type: custom
В соответствии с документация , это также должно работать (и более кратко):
settype col: YourDateCol type: 'Datetime','yy-mm-dd','yyyymmdd'
Обратите внимание, что если вам абсолютно необходимо сделать это в контексте функции, вы можете извлечь датучасти, использующие SUBSTRING
/ LEFT
/ RIGHT
и передать их в DATE
или DATETIME
функция для создания объекта datetime.Как вы, вероятно, уже обнаружили, DATEFORMAT
вернет NULL, если исходный столбец уже не имеет тип Datetime
.
(хотя с точки зрения производительности, вероятно,гораздо более эффективно для большого набора данных либо просто изменить или создать новый столбец с правильным типом, чем выполнять эти дополнительные операции с таким количеством строк.)