Как преобразовать тип столбца из str в дату, когда str имеет формат dd/mm/yyyy?

У меня есть большая таблица в SQL я импортировал из большого файла CSV.

Столбец распознается как строка, если он содержит информацию о дате в формате дд / мм / гггг.

Я старался select TO_DATE('12/31/2015') as date но это не работает, потому что функция TO_DATE нуждается в формате гггг-мм-дд.

Как переставить строку '12/31/2015'в формат'2015-12-31'внутри sql, чтобы можно было преобразовать тип столбца в дату?

Я делаю это на sparkSQL (в среде блоков данных) из-за очень большого размера данных, где update Ключевое слово sql, похоже, не поддерживается.

1 ответ

Просто перечитайте свой вопрос;

Я бы предложил это:

UPDATE table
SET column = Convert(varchar(10), Convert(smalldatetime, column, 103), 120)

Это преобразует значение столбца в smalldatetime, используя британский формат (дд / мм / гггг), затем преобразует его обратно в varchar, используя формат 120 (гггг-мм-дд); Формат 120 содержит информацию о времени, но она будет усечена, потому что она возвращается как varchar(10);

Попробуй это:

SELECT Convert(varchar(10), Convert(smalldatetime, column, 103), 120)
FROM table

Приведенный ниже ответ по ссылке работает https://forums.databricks.com/answers/12121/view.html

df.withColumn ("tx_date", to_date(unix_timestamp($"date", "M / dd / yyyy"). cast ("timestamp")))

Другие вопросы по тегам