2013-07-28 12 views
42

Jak uzyskać aktualną datę systemową w Hive? W MySQL mamy teraz select(), może ktoś mi pomóc, aby uzyskać wyniki zapytania. Jestem bardzo nowy w Hive, czy istnieje odpowiednia dokumentacja dla Hive, która podaje szczegółowe informacje o pseudo kolumnach i wbudowanych funkcjach.Jak wybrać aktualną datę w Hive SQL

Odpowiedz

65

Zgodnie z LanguageManual można użyć unix_timestamp(), aby uzyskać "bieżący znacznik czasu z domyślną strefą czasową". Jeśli chcesz przekonwertować to na coś bardziej zrozumiałego dla człowieka, możesz użyć from_unixtime(unix_timestamp()).

Nadzieję, że pomaga.

+3

Dziękuję Lukas, działa idealnie, powinien być wybrany jako poprawna odpowiedź. –

+0

Możesz uzyskać pełne informacje z https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF – GihanDB

8

Funkcje current_date i current_timestamp są teraz dostępne w Hive 1.2.0 i nowszych, co sprawia, że ​​kod jest dużo czystszy.

+0

The Hive 1.2 w dystrybucji Cloudera nie zawiera funkcji current_date. Jednak zawiera on funkcję unix_timestamp() – veve

19

Tak ... Używam Hue 3.7.0 - The Hadoop UI i uzyskać aktualne informacje data/czas możemy skorzystać z poniższego polecenia w Ulu:

SELECT from_unixtime(unix_timestamp()); --/Selecting Current Time stamp/ 

SELECT CURRENT_DATE; --/Selecting Current Date/ 

SELECT CURRENT_TIMESTAMP; --/Selecting Current Time stamp/ 

Jednak w Impala można zauważyć, że tylko poniżej komenda stara się uzyskać dane data/czas:

SELECT from_unixtime(unix_timestamp()); --/Selecting Current Timestamp/

nadzieję, że to rozwiązuje zapytanie :)

10

sprowadzić tylko datę bieżącą wyłączeniem datownik:

w niższych wersjach wygląda ula CURRENT_DATE nie jest dostępna, dlatego można użyć (pracował dla mnie na Hive 0,14)

select TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP())); 

W wyższych wersjach powiedzieć ula 2.0, można użyć:

select CURRENT_DATE; 
+0

, aby wspomnieć, że 'current_date'jest dostępny od Hive 1.2.0 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions – user1314742

0

aby wyodrębnić lat od daty bieżącej

SELECT YEAR(CURRENT_DATE()) 

IBM Netezza

extract(year from now()) 

HIVE

SELECT YEAR(CURRENT_DATE()) 
+2

ma coś zmienił się od 2013 roku? Jakiej wersji teraz używasz? Określ, czy coś się zmieniło. – ImAtWar

-1
select from_unixtime(unix_timestamp(current_date, 'yyyyMMdd'),'yyyy-MM-dd'); 

current_date - aktualna data

yyyyMMdd - moje systemy obecny format daty;

yyyy-MM-dd - jeśli chcesz zmienić format na inny.

Powiązane problemy