Я хотел бы запускать выражения типа
SELECT date_add('2008-12-31', 1) FROM DUAL
Есть ли у ура (работает на Amazon EMR) что-то подобное?
Я хотел бы запускать выражения типа
SELECT date_add('2008-12-31', 1) FROM DUAL
Есть ли у ура (работает на Amazon EMR) что-то подобное?
Лучшее решение не означает имя таблицы.
select 1+1;
Дает результат 2. Но плохой Улей нужно вскрыть карту, чтобы найти это!
Есть хорошее рабочее решение (хорошо, обходной путь), доступное по ссылке, но оно медленное, как вы можете себе представить.
Идея состоит в том, чтобы создать таблицу с фиктивным полем, создать текстовый файл с содержимым "X", загрузить этот текст в эту таблицу. Виола.
CREATE TABLE dual (dummy STRING);
load data local inpath '/path/to/textfile/dual.txt' overwrite into table dual;
SELECT date_add('2008-12-31', 1) from dual;
Чтобы создать двойную таблицу в улье, где есть один столбец и одна строка, вы можете сделать следующее:
create table dual (x int);
insert into table dual select count(*)+1 as x from dual;
Проверьте выражение:
select split('3,2,1','\\,') as my_new_array from dual;
Вывод:
["3","2","1"]
Быстрое решение:
Мы можем использовать существующую таблицу для достижения двойной функциональности, выполнив следующий запрос.
SELECT date_add('2008-12-31', 1) FROM <Any Existing Table> LIMIT 1
Например:
SELECT CONCAT('kbdjj','56454') AS a, null AS b FROM tbl_name LIMIT 1
"limit 1" в запросе используется для предотвращения множественных вхождений заданных значений (kbdjj56454, null).
Hive теперь поддерживает эту функцию, а также поддерживает многие другие функции дат.
Вы можете запустить запрос, как показано ниже, в кусте, который добавит число дней, указанное в первом аргументе.
SELECT DATE_ADD('2019-03-01', 5);