2017-08-28 50 views
0

我正在閱讀一些Hive QL腳本,發現這行: SELECT'Start time:',from_unixtime(unix_timestamp());SELECT對Hive的疑問SQL

這是什麼意思?它看起來不像一個真正的「選擇」聲明?

+0

什麼是列名? –

+0

@Mohsen_Fatemi,不相關。這裏沒有查詢表。 –

+0

這個SQL語句可以替換爲'select current_timestamp;' – leftjoin

回答

0

這不會查詢數據庫。這只是一個Print語句。 如果我們運行命令:SELECT 'Start time:',from_unixtime(unix_timestamp());

出放爲:

您的表
Col1: Start time: 
Col2: 2017-08-29 01:36:11 

enter image description here

0

HIVE-178       選擇未經應該承擔沒有列

...人們利用這一切與SQL Server的時間一排表。我希望人們 喜歡它,如果它被添加到蜂巢...

... Hive的語言手冊現在狀態,「作爲蜂巢0.13.0,距離是 可選的(例如,SELECT 1+ 1)「。

真的沒什麼新的 - 這句法是由Sybase的Transact-SQL 30年前介紹,他們賣掉了自己的「SQL Server」代碼庫(和產品名稱),以微軟之前,他們賣的休息多久到SAP。

備用語法使用DUAL(Oracle)或SYSDUMMY1(DB2)僞表。

+0

請注意,這種語法在兩種情況下是有用的:如果你想「打印」一些任意的消息到控制檯*(如你的例子)*;或者如果你想在查詢中注入一些任意數據*(例如單元測試)* –

+0

這究竟意味着什麼?在我的情況下,「選擇」開始時間:',from_unixtime(unix_timestamp());「,它會查詢DB?將它寫入數據庫? – derek

+0

再次閱讀我的評論 - 尤其是_「就像你的例子」中那樣的部分_。另外,打開Hive JIRA的鏈接並閱讀它。最後但並非最不重要的一點,想一想SELECT在英語中的含義。有點類似於GET,對吧? –