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 | +---------------------------------------------------------+
См. также
© 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/