Конвертировать MySQL BigInt (20) Unix эпохи времени в datetime (3)

0
select from_unixtime(floor(1510156036741/1000), '%Y %D %M %h:%i:%s');

'2017 8 ноября 07:47:16'

Вышеупомянутый код выводит метку времени, которая не включает миллисекундную точность. Как преобразовать время эпохи unix в объект datetime (3), который включает миллисекунды?

Можно получить микросекунды, например:

select from_unixtime(1510156036741/1000, '%Y %D %M %h:%i:%s %f');

'2017 8 ноября 07:47:16 741000'

Можно ли преобразовать микросекундный результат в миллисекунды?

Теги:
datetime

1 ответ

1

Его немного неуклюжие, но вы можете извлечь микросекунду и разделить ее на 1000, чтобы преобразовать ее в миллисекунды. Здесь я также передал его int и объединил его с форматированной датой для создания окончательной строки даты:

SELECT CONCAT(
  from_unixtime(1510156036741/1000, '%Y %D %M %h:%i:%s '),
  CAST(EXTRACT(MICROSECOND FROM from_unixtime(1510156036741/1000))/1000 
  AS SIGNED)
);

"2017 8 ноября 03:47:16 741"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню