Если все строки строго соответствуют одному или другому формату, вы можете сделать условную логику c:
PARSE_TIMESTAMP(
CASE
WHEN REGEXP_CONTAINS(mydate, r"^\d{4}-\d{2}-\d{2}$" THEN "%F"
WHEN REGEXP_CONTAINS(mydate, r"^\d{2}/\d{2}/\d{4}$" THEN "%m/%d/%Y"
END,
mydate
)
Возможно, вы захотите использовать SAFE.PARSE_TIMESTAMP()
вместо PARSE_TIMESTAMP()
для предотвращения сбоев преобразования в несравненных форматах.