Reputation: 379
Hi I am trying to extract the month and year part of a timestamp column in hive using the below query
select from_unixtime(unix_timestamp(upd_gmt_ts,'yyyyMM')) from abc.test;
The output looks like 2016-05-20 01:08:48
the desired output should be 201605
Appreciate any suggestions.
Upvotes: 15
Views: 102269
Reputation: 1109
Please use the following query
SELECT YEAR(FROM_UNIXTIME(unix_timestamp()))*100 + MONTH(FROM_UNIXTIME(unix_timestamp()))
Upvotes: 5
Reputation: 51
To see date in yyyy-mm-dd hh:mm:ss
format, you can use it as below:
select to_utc_timestamp(col_name, 'PST') * from table;
Upvotes: 1
Reputation: 35434
I'd prefer to use Hive date_format() (as of Hive 1.2.0). It support Java SimpleDateFormat patterns.
date_format()
accepts date/timestamp/string
. So your final query will be
select date_format(upd_gmt_ts,'yyyyMM') from abc.test;
Edit:
SimpleDateFormat
acceptable patterns examples.
Upvotes: 34
Reputation: 4501
You can use CONCAT and FROM_UNIXTIME like below:
SELECT CONCAT(YEAR(FROM_UNIXTIME(1468215093)), MONTH(FROM_UNIXTIME(1468215093))) AS YEAR_MONTH
In your query:
SELECT CONCAT(YEAR(FROM_UNIXTIME(upd_gmt_ts)), MONTH(FROM_UNIXTIME(upd_gmt_ts))) AS YEAR_MONTH
FROM abc.test;
Upvotes: 3