Hive - month and year from timestamp column
Asked Answered
L

4

15

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.

Logjam answered 10/1, 2017 at 6:18 Comment(1)
check this select date_format(upd_gmt_ts,'yyyyMM') from abc.test;Felicitasfelicitate
F
34

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.

enter image description here

Felicitasfelicitate answered 10/1, 2017 at 6:47 Comment(0)
B
5

Please use the following query

SELECT YEAR(FROM_UNIXTIME(unix_timestamp()))*100 + MONTH(FROM_UNIXTIME(unix_timestamp()))
Bandstand answered 9/6, 2017 at 11:30 Comment(0)
T
3

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;
Tillford answered 10/1, 2017 at 6:30 Comment(3)
Thanks for the query..but this gave me semanticException. did not work as expected..Logjam
FAILED: SemanticException [Error 10014]: Line 1:19 Wrong arguments 'upd_gmt_ts': No matching method for class org.apache.hadoop.hive.ql.udf.UDFFromUnixTime with (timestamp). Possible choices: _FUNC_(bigint) _FUNC_(bigint, string) _FUNC_(int) _FUNC_(int, string)Logjam
is upd_gmt_ts your timestamp value?Tillford
D
1

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;
Drab answered 10/7, 2017 at 9:54 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.