Как преобразовать тип столбца из 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")))