correction for the first example
select cast(cast('1966-01-01 00:00:01' as timestamp) as date);
1966-01-02


On Tue, Mar 31, 2015 at 11:26 PM, Alexander Pivovarov <apivova...@gmail.com>
wrote:

> Hi Everyone
>
> I noticed interesting behaviour for timestamp to date hive type conversion
> for negative unix time.
>
> For example:
>
> select cast(cast('1966-01-01 00:00:01' as timestamp) as date);
> 1966-02-02
>
> Should it work this way?
>
> Another example
> select last_day(cast('1966-01-31 00:00:01' as timestamp));
> OK
> 1966-02-28
>
>
> more details:
> Date: 1966-01-01 00:00:01
> unix time UTC: -126230399
>
> daysSinceEpoch=−126230399000 / 86400000 = -1460.999988
> int daysSinceEpoch = -1460
> DateWritable having daysSinceEpoch=-1460 is 1966-01-02
>
>
>
>
>
>

Reply via email to