MySQL выбирает форматированную дату из поля миллисекунды

У меня есть столбец в базе данных MySQL, который содержит дату в миллисекундах (эпоху). Я хочу построить SQL-запрос, который форматирует дату как нечто читаемое человеком (день, месяц, год, часы, минуты, секунды в любом формате и часовом поясе). Есть ли функция SQL (или MySQL) для этого?

Ответ 1

Попробуйте использовать функцию FROM_UNIXTIME как это указано в руководстве

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

Вы также можете использовать форматирование, подобное этому

mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
    ->                      '%Y %D %M %h:%i:%s %x');
    -> '2007 30th November 10:30:59 2007'

Ответ 2

Если вы хотите получить микросекунду из поля, используйте% f,

select FROM_UNIXTIME(DATE_COLUMN/1000,'%Y-%M-%d %H:%i:%s %f') from TABLE_NAME;

+-------------------------------------------------------+
| FROM_UNIXTIME(CREATETIME/1000,'%Y-%M-%d %H:%i:%s %f') |
+-------------------------------------------------------+
| 2016-March-18 16:02:54 342000                         |
+-------------------------------------------------------+

Источник: MYSQL DATE_FORMAT