Hive's unix_timestamp and from_unixtime functions

From the language manual:

Convert time string with given pattern to Unix time stamp (in seconds) The result of this function is in seconds.

Your result changes with the milliseconds portion of the date, but the unix functions only support seconds. For example:

SELECT unix_timestamp('10-Jun-15 10.00.00 AM', 'dd-MMM-yy hh.mm.ss a');

1433930400

SELECT from_unixtime(1433930400, 'dd-MMM-yy hh.mm.ss a');

10-Jun-15 10.00.00 AM


Don't use from unix_timestamp as you have in your second query. Additionally your statement has a formatting in it that gives the result where DEC is used in steads of 12. See dd-MM-yy. Don't specify a format and it should work. See the examples below.

You are however correct that from_unixtime() and unix_timestamp() are used to convert back and forth from time string.

select unix_timestamp('2015-04-09 03:04:26') from dual;

results in "1428566666"

select from_unixtime(1428566666) from dual;

results in "2015-04-09 03:04:26"

Tags:

Hive

Hiveql