我目前正在使用Hive SQL,並且我在'timestamp
'列中使用格式爲"25/Nov/2016:15:48:01 +0000"
的表格。從時間戳格式「25/Nov/2016:15:48:01 +0000'檢索月份
我怎樣才能提取一個月是「月」從上面的格式,而無需使用SUBSTRING()函數。
我試過,
SELECT MONTH(timestamp) FROM table_name;
但它返回空。什麼應該是正確的從上面的時間戳中檢索'Nov'月份的方法RMAT。
我目前正在使用Hive SQL,並且我在'timestamp
'列中使用格式爲"25/Nov/2016:15:48:01 +0000"
的表格。從時間戳格式「25/Nov/2016:15:48:01 +0000'檢索月份
我怎樣才能提取一個月是「月」從上面的格式,而無需使用SUBSTRING()函數。
我試過,
SELECT MONTH(timestamp) FROM table_name;
但它返回空。什麼應該是正確的從上面的時間戳中檢索'Nov'月份的方法RMAT。
請參閱下面的example ..
unix_timestamp(time,'dd/MMM/yyyy:HH:mm:ss')
,然後嘗試你的月功能
OR
首先你的時間戳轉換成字符串下文中的申請一個月函數這樣 例子
串
from_unixtime(bigint unixtime[, string format])
的 數目的從Unix紀元(1970-01-01 00:00:00 UTC)秒轉換爲代表的格式的那一刻的當前系統 時區的時間戳的 字符串「 1970-01-01 00:00:00"
那麼你可以申請每月函數將返回可以轉換的等效字符串後
INT
month(string date)
返回的月份部分月份INT格式日期或 噸imestamp字符串:month(「1970-11-01 00:00:00」)= 11, month(「1970-11-01」)= 11.
你的反饋真的很有用Ram。我使用了MONTH(from_unixtime(unix_timestamp(timestamp,'dd/MMM/yyyy:HH:mm:ss'))),並且它很容易地以int格式返回了我的月份。 –
該列是定義爲TIMESTAMP還是隻定義爲串?如果它是一個字符串,你應該使用SUBSTRING。 – dnoeth
你可以檢查下面的方式! –
你是否有2月和/或12月的例子,只是爲了檢查標籤是英文而不是法文(FEV)或德文(DEZ)或其他?如果你不能指定語言環境,那麼這將會帶來Java字符串格式的地獄... –