2016-08-19 5 views
1

У меня есть большая таблица в sql, которую я импортировал из большого файла csv.Как преобразовать тип столбца из str в дату, когда str имеет формат dd/mm/yyyy?

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

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

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

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

ответ

2

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

Я хотел бы предложить следующее:

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

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

Попробуй:

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

Спасибо. Это не справедливый вопрос, так как я не разъяснял до этого. Кажется, что команда update не поддерживается в sparkSQL. (Я мог бы ошибаться) Любые советы в этом сценарии? – Semihcan

+0

Я только что попробовал тестовую инструкцию и получил следующую ошибку: Ошибка в инструкции SQL: AnalysisException: не удается распознать ввод рядом с «varchar» ('' 10 'в спецификации функции, строка 1 pos 15 – Semihcan

+1

Привет, Semihcan, я пробовал заявление, которое я написал на моем ПК, и не было проблем, поэтому я предполагаю, что это проблема совместимости с платформой, я проверил ваши теги и вижу, что вы использовали apache-spark-sql, когда я использую прямой SQL; извинения, я не могу больше помочь. –

 Смежные вопросы

  • Нет связанных вопросов^_^