#apache-spark-sql
#apache-spark-sql
Вопрос:
У меня есть строка в формате M/d/yyyy
or MM/dd/yyyy
, и я работаю над преобразованием этой строки в другую строку другого формата yyyyMMdd
, и это некоторые методы, которые я тестировал только для получения начальных форматов строк, но все они выдаются как нули в sql spark:
SELECT
current_date() AS RightNow ---Returns today's date
, date_format("8/15/2019","MM-dd-yyyy") AS FormatDate ---Returns null
, TO_DATE("8/15/2019") AS OtherFormat ---Returns null
, CAST("8/15/2019" as date) Casted ---Returns null
, CAST(UNIX_TIMESTAMP('8/15/2019', 'yyyyMMdd') AS TIMESTAMP) TestFour ---Returns null
Что странно, так это то, что когда я читаю другие ответы, я вижу, что некоторые пользователи говорят, что вывод — это даты, но все они возвращают null. Ввод — это строка, а вывод из sql должен быть строкой. T
Ответ №1:
Прочитав ваш пост немного более внимательно…
to_date("8/15/2019","MM/dd/yyyy")
преобразует вашу строку в фактическую дату. Второй аргумент — это формат ввода ваших данных.
Чтобы преобразовать ее в желаемый формат строки:
date_format(to_date("8/15/2019","MM/dd/yyyy"),"yyyyMMdd")
Второй аргумент для date_format — это желаемый формат вывода. Первым аргументом должна быть фактическая дата.