2013-07-28 35 views
42

Làm cách nào để có được ngày hệ thống hiện tại trong Hive? Trong MySQL, chúng ta đã chọn ngay bây giờ(), bất kỳ ai có thể vui lòng giúp tôi để có được kết quả truy vấn. Tôi rất mới với Hive, là có một tài liệu thích hợp cho Hive cung cấp thông tin chi tiết về các cột giả và các hàm dựng sẵn.Cách chọn ngày hiện tại trong Hive SQL

Trả lời

65

Theo số LanguageManual, bạn có thể sử dụng unix_timestamp() để nhận "dấu thời gian hiện tại bằng múi giờ mặc định". Nếu bạn cần chuyển đổi nó thành một cái gì đó dễ đọc hơn, bạn có thể sử dụng from_unixtime(unix_timestamp()).

Hy vọng điều đó sẽ hữu ích.

+3

Cảm ơn bạn Lukas, hoạt động hoàn hảo, nên được chọn làm câu trả lời đúng. –

+0

Bạn có thể nhận thông tin đầy đủ từ https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF – GihanDB

8

Các chức năng current_datecurrent_timestamp hiện có sẵn trong Hive 1.2.0 trở lên, giúp mã này sạch hơn rất nhiều.

+0

The Hive 1.2 trong bản phân phối Cloudera không chứa hàm current_date. Tuy nhiên nó chứa hàm unix_timestamp() – veve

19

Có ... Tôi đang sử dụng Huế 3.7.0 - Các Hadoop UI và để có được thông tin ngày/thời gian hiện tại chúng ta có thể sử dụng dưới lệnh trong Hive:

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

SELECT CURRENT_DATE; --/Selecting Current Date/ 

SELECT CURRENT_TIMESTAMP; --/Selecting Current Time stamp/ 

Tuy nhiên, trong Impala bạn sẽ thấy rằng chỉ bên dưới lệnh đang nỗ lực để có được thông tin chi tiết ngày/giờ:

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

Hy vọng nó sẽ giải quyết truy vấn của bạn :)

10

để lấy chỉ ngày hiện tại trừ tem thời gian:

0.123.

trong các phiên bản thấp hơn, trông giống như CURRENT_DATE hive không có sẵn, do đó bạn có thể sử dụng (nó làm việc cho tôi trên Hive 0,14)

select TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP())); 

Trong các phiên bản cao hơn nói hive 2.0, bạn có thể sử dụng:

select CURRENT_DATE; 
+0

chỉ đề cập đến 'current_date'is avialalble bắt đầu từ Hive 1.2.0 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions – user1314742

0

Để trích xuất năm kể từ ngày hiện tại

SELECT YEAR(CURRENT_DATE()) 

IBM Netezza

extract(year from now()) 

Hive

SELECT YEAR(CURRENT_DATE()) 
+2

có một cái gì đó đã thay đổi kể từ năm 2013? Bạn đang sử dụng phiên bản nào? Chỉ định nếu có điều gì đó đã thay đổi. – ImAtWar

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

current_date - ngày hiện tại

yyyyMMdd - hệ thống của tôi định dạng ngày tháng hiện hành;

yyyy-MM-dd - nếu bạn muốn thay đổi định dạng sang định dạng khác.

Các vấn đề liên quan