MySQL FROM_UNIXTIME()
функцията ви позволява да върнете представяне на дата на времеви печат на Unix.
По-конкретно, той връща времевата марка на Unix като стойност в „ГГГГ-ММ-ДД ЧЧ:ММ:СС“ или ГГГГММДДХММСС формат, в зависимост от това дали функцията се използва в низов или числов контекст.
Синтаксис
Можете да използвате една от следните две форми:
FROM_UNIXTIME(unix_timestamp) FROM_UNIXTIME(unix_timestamp,format)
unix_timestamp
Аргументът е вътрешна стойност на времеви печат (например това може да бъде произведено с UNIX_TIMESTAMP()
функция).
(по избор) format
аргумент ви позволява да посочите как трябва да бъде форматиран резултатът. Вижте таблицата в долната част на тази статия за валидни формати.
Пример 1 – Основна употреба
Ето пример за демонстриране на първата синтактична форма.
SELECT FROM_UNIXTIME(946562400) AS Result;
Резултат:
+---------------------+ | Result | +---------------------+ | 1999-12-31 00:00:00 | +---------------------+
Пример 2 – дробни секунди
В този пример предоставям аргумент, който включва дробни секунди.
SELECT FROM_UNIXTIME(946609199.999999) AS Result;
Резултат:
+----------------------------+ | Result | +----------------------------+ | 1999-12-31 12:59:59.999999 | +----------------------------+
Пример 3 – Форматиране на резултата
В този пример предоставям втори аргумент, който определя как трябва да бъде форматиран резултатът.
SELECT FROM_UNIXTIME(946562400, '%W, %D %M %Y') AS Result;
Резултат:
+----------------------------+ | Result | +----------------------------+ | Friday, 31st December 1999 | +----------------------------+
И ето един, който включва времевата част във форматирането:
SELECT FROM_UNIXTIME(946609199, '%h:%i %p, %D %M %Y') AS Result;
Резултат:
+------------------------------+ | Result | +------------------------------+ | 12:59 PM, 31st December 1999 | +------------------------------+
Пример 4 – Числов контекст
Ако FROM_UNIXTIME()
се използва в числов контекст, получената дата се предоставя в числов формат.
Ето пример, който сравнява резултатите, когато се използват в низов контекст с числов.
SELECT FROM_UNIXTIME(946562400) As 'String', FROM_UNIXTIME(946562400) + 0 As 'Numeric';
Резултат:
+---------------------+----------------+ | String | Numeric | +---------------------+----------------+ | 1999-12-31 00:00:00 | 19991231000000 | +---------------------+----------------+
Налични спецификатори
Следните спецификатори могат да се използват за определяне на формата за връщане. Стойността на формата трябва да започва със знак за процент (%
).
Спецификатор | Описание |
---|---|
%a | Съкратено име на делничен ден (Sun ..Sat ) |
%b | Съкратено име на месеца (Jan ..Dec ) |
%c | Месец, числов (0 ..12 ) |
%D | Ден от месеца с английски суфикс (0th , 1st , 2nd , 3rd , …) |
%d | Ден от месеца, цифров (00 ..31 ) |
%e | Ден от месеца, цифров (0 ..31 ) |
%f | Микросекунди (000000 ..999999 ) |
%H | Час (00 ..23 ) |
%h | Час (01 ..12 ) |
%I | Час (01 ..12 ) |
%i | Минути, числови (00 ..59 ) |
%j | Ден от годината (001 ..366 ) |
%k | Час (0 ..23 ) |
%l | Час (1 ..12 ) |
%M | Име на месеца (Jan ..December ) |
%m | Месец, цифров (00 ..12 ) |
%p | AM или PM |
%r | Време, 12 часа (hh:mm:ss последвано от AM или PM ) |
%S | Секунди (00 ..59 ) |
%s | Секунди (00 ..59 ) |
%T | Време, 24 часа (hh:mm:ss ) |
%U | Седмица (00 ..53 ), където неделя е първият ден от седмицата; WEEK() режим 0 |
%u | Седмица (00 ..53 ), където понеделник е първият ден от седмицата; WEEK() режим 1 |
%V | Седмица (01 ..53 ), където неделя е първият ден от седмицата; WEEK() режим 2; използва се с %X |
%v | Седмица (01 ..53 ), където понеделник е първият ден от седмицата; WEEK() режим 3; използва се с %x |
%W | Име на деня от седмицата (Sunday ..Sat ) |
%w | Ден от седмицата (0 =Неделя..6 =събота) |
%X | Година за седмицата, където неделя е първият ден от седмицата, число, четири цифри; използва се с %V |
%x | Година за седмицата, където понеделник е първият ден от седмицата, число, четири цифри; използва се с %v |
%Y | Година, число, четири цифри |
%y | Година, число (две цифри) |
%% | Литерал % символ |
% | x , за всеки „x ” не е изброено по-горе |