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