В сфере управления базами данных часто необходимо преобразовать номера эпох в удобочитаемые даты. Числа эпох, которые представляют момент времени с определенной эпохи, обычно используются для хранения временных данных в системах баз данных, таких как 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