Spec-Zone.ru › MariaDB

FROM_UNIXTIME

Синтаксис

FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)

Описание

Возвращает представление аргумента unix_timestamp как значения в формате 'ГГГГ-ММ-ДД ЧЧ:ММ:СС' или ГГГГММДДЧЧММСС.uuuuuu, в зависимости от того, используется ли функция в строковом или числовом контексте. Значение выражается в текущей временной зоне. unix_timestamp — это внутреннее значение метки времени, например, такое, которое генерируется функцией UNIX_TIMESTAMP().

Если задан формат, результат форматируется в соответствии со строкой формата, которая используется так же, как указано в записи функции DATE_FORMAT().

Метки времени в MariaDB имеют максимальное значение 2147483647, что эквивалентно 2038-01-19 05:14:07. Это связано с ограничением 32-битной архитектуры. Использование функции для метки времени, превышающей это значение, приведет к возврату NULL. Используйте DATETIME как тип хранения, если вам нужны даты, превышающие это значение.

Доступные параметры для FROM_UNIXTIME(), а также для DATE_FORMAT() и STR_TO_DATE():

Параметр Описание
%a Сокращенное имя дня недели в текущем языке (переменная lc_time_names).
%b Сокращенное имя месяца в текущем языке. Для языка en_US это одно из: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov или Dec.
%c Месяц с 1 или 2 цифрами.
%D День с английским суффиксом 'th', 'nd', 'st' или 'rd' (1-е, 2-е, 3-е...).
%d День с 2 цифрами.
%e День с 1 или 2 цифрами.
%f Микросекунды 6 цифр.
%H Час с 2 цифрами в диапазоне 00-23.
%h Час с 2 цифрами в диапазоне 01-12.
%I Час с 2 цифрами в диапазоне 01-12.
%i Минута с 2 цифрами.
%j День года (001-366)
%k Час с 1 цифрой в диапазоне 0-23.
%l Час с 1 цифрой в диапазоне 1-12.
%M Полное имя месяца в текущем языке (переменная lc_time_names).
%m Месяц с 2 цифрами.
%p AM/PM в соответствии с текущим языком (переменная lc_time_names).
%r Время в формате 12 часов, после которого следуют AM/PM. Сокращение для '%I:%i:%S %p'.
%S Секунды с 2 цифрами.
%s Секунды с 2 цифрами.
%T Время в формате 24 часов. Сокращение для '%H:%i:%S'.
%U Номер недели (00-53), когда первым днем недели является воскресенье.
%u Номер недели (00-53), когда первым днем недели является понедельник.
%V Номер недели (01-53), когда первым днем недели является воскресенье. Используется с %X.
%v Номер недели (01-53), когда первым днем недели является понедельник. Используется с %x.
%W Полное имя дня недели в текущем языке (переменная lc_time_names).
%w День недели. 0 = Воскресенье, 6 = Суббота.
%X Год с 4 цифрами, когда первым днем недели является воскресенье. Используется с %V.
%x Год с 4 цифрами, когда первым днем недели является воскресенье. Используется с %v.
%Y Год с 4 цифрами.
%y Год с 2 цифрами.
%# Для str_to_date(), пропускать все числа.
%. Для str_to_date(), пропускать все знаки препинания.
%@ Для str_to_date(), пропускать все символы.
%% Буквальный символ %.

Рекомендации по производительности

Если ваша временная зона сеанса установлена в SYSTEM (по умолчанию), FROM_UNIXTIME() вызовет функцию ОС для преобразования данных с использованием системной временной зоны. По крайней мере, в Linux соответствующая функция (localtime_r) использует глобальный мьютекс внутри glibc, что может вызвать проблемы при высокой одновременной нагрузке.

Установите свою временную зону на именованную временную зону, чтобы избежать этой проблемы. Подробности о том, как это сделать, см. в разделе mysql time zone tables.

Примеры

SELECT FROM_UNIXTIME(1196440219);
+---------------------------+
| FROM_UNIXTIME(1196440219) |
+---------------------------+
| 2007-11-30 11:30:19       |
+---------------------------+

SELECT FROM_UNIXTIME(1196440219) + 0;
+-------------------------------+
| FROM_UNIXTIME(1196440219) + 0 |
+-------------------------------+
|         20071130113019.000000 |
+-------------------------------+

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x');
+---------------------------------------------------------+
| FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x') |
+---------------------------------------------------------+
| 2010 27th March 01:03:47 2010                           |
+---------------------------------------------------------+

См. также

  • UNIX_TIMESTAMP()
  • DATE_FORMAT()
  • STR_TO_DATE()
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не предварительно просматривается MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают позицию MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/from_unixtime/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API