2017-03-08 72 views
0

Hive的小時函數返回NULL。下面是我的查詢Hive小時函數返回NULL

選擇小時(COL_NAME)從COL_NAME hivetable

數據類型的字符串和值在格式HH:MM:SS

+2

請給出一個返回NULL的值的示例。十六進制值(col_name)對於此值的結果 –

+0

十六進制值是30333A30343A3531,而col_name的值是「03:04:51」 – Vish

+0

這沒有意義。請添加到帖子中可重現的用例:創建表格+插入+選擇。 –

回答

0

我建議你檢查COL_NAME格式是正確的,或者它應該有一個時間戳格式或者'HH:mm:ss',因爲在字符串時間使用'小時'功能將起作用。例如:小時( 'HH:MM:SS')

hive > select hour('12:58:59') as hour; 
OK 
hour 
12 
Time taken: 0.061 seconds, Fetched: 1 row(s) 
+0

是的格式是正確的,我目前使用的值是「03:04:51」 – Vish

0

這個問題可以通過使用 選擇小時FROM_UNIXTIME(UNIX_TIMESTAMP(COL_NAME, ':MM:HH SS' 解析(從hivetable))

但我不確定爲什麼我們需要這樣做,當輸入值是字符串和正確的格式是「HH:mm:ss」