Converting epoch number to human readable date in mysql

You can use from_unixtime() as follows:

SELECT from_unixtime(1388618430);

which returns 2014-01-02 00:20:30


This wil work for both +positive and -negative epoch, in-case for old birth dates, and also if you want to specify date format

select
date_format(DATE_ADD(from_unixtime(0), interval '1389422614485'/1000 second), '%Y-%m-%d %H:%i:%s') as my_new_date;

Your epoch value 1389422614485 seems like having the millisecond precision. So you need to use some mysql mathematical functions along with from_unixtime() for generating human readable format.

mysql> select from_unixtime(floor(1389422614485/1000));
+------------------------------------------+
| from_unixtime(floor(1389422614485/1000)) |
+------------------------------------------+
| 2014-01-11 12:13:34                      |
+------------------------------------------+

Update July 2020: As of MySQL 8.0, the floor function is no longer necessary when working with milliseconds:

mysql> select from_unixtime(1594838230234/1000);
+------------------------------------------+
| from_unixtime(1594838230234/1000)        |
+------------------------------------------+
| 2020-07-15 18:37:10.2340                 |
+------------------------------------------+

Take a look at from-unixtime

mysql> SELECT FROM_UNIXTIME(1196440219);
       -> '2007-11-30 10:30:19'

Tags:

Mysql

Epoch