«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как преобразовать числа эпох в удобочитаемые даты в MySQL?

Как преобразовать числа эпох в удобочитаемые даты в MySQL?

Опубликовано 8 ноября 2024 г.
Просматривать:759

How to Convert Epoch Numbers to Human-Readable Dates in MySQL?

Преобразование номера эпохи в удобочитаемую дату в MySQL

В сфере управления базами данных часто необходимо преобразовать номера эпох в удобочитаемые даты. Числа эпох, которые представляют момент времени с определенной эпохи, обычно используются для хранения временных данных в системах баз данных, таких как MySQL.

Рассмотрим гипотетический сценарий, в котором у вас есть номер эпохи, например 1389422614485, который представляет конкретный момент времени. Тип данных этого значения — varchar, и вы хотите преобразовать его в понятный формат даты.

Подробное решение

Чтобы выполнить это преобразование в MySQL, вы необходимо использовать комбинацию математических функций и функции from_unixtime():

mysql> select from_unixtime(floor(1389422614485/1000));

Объяснение

В этом примере функция from_unixtime() используется для преобразования номера эпохи, который обычно представляет миллисекунды с момента начала эпохи, в строку даты. Поскольку наше число эпох имеет точность до миллисекунды, мы используем Floor(1389422614485/1000), чтобы преобразовать его в секунды с начала эпохи, что является входными данными, которые ожидает from_unixtime().

Вывод

 ------------------------------------------ 
| from_unixtime(floor(1389422614485/1000)) |
 ------------------------------------------ 
| 2014-01-11 12:13:34                      |
 ------------------------------------------ 

Вывод отображает удобочитаемую дату, соответствующую заданному номеру эпохи, в формате «ГГГГ-ММ-ДД ЧЧ:ММ:СС».

Обновление для MySQL 8.0 и выше

Начиная с версии MySQL 8.0, функция Floor больше не требуется при работе с миллисекундами в функции from_unixtime(). Вы можете напрямую указать номер эпохи в миллисекундах в качестве аргумента:

mysql> select from_unixtime(1594838230234/1000);

Это даст следующий результат:

 ------------------------------------------ 
| from_unixtime(1594838230234/1000)        |
 ------------------------------------------ 
| 2020-07-15 18:37:10.2340                 |
 ------------------------------------------ 

Это изысканное версия запроса теперь также поддерживает наносекундную точность.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3