MySQL FROM_UNIXTIME()
funktionen gör att du kan returnera en datumrepresentation av en Unix-tidsstämpel.
Mer specifikt returnerar den Unix-tidsstämpeln som ett värde i 'ÅÅÅÅ-MM-DD HH:MM:SS' eller ÅÅÅÅMMDDHHMMSS format, beroende på om funktionen används i en sträng eller numerisk kontext.
Syntax
Du kan använda någon av följande två former:
FROM_UNIXTIME(unix_timestamp) FROM_UNIXTIME(unix_timestamp,format)
unix_timestamp
argument är ett internt tidsstämpelvärde (det kan till exempel produceras med UNIX_TIMESTAMP()
funktion).
Det (valfria) format
argument låter dig specificera hur resultatet ska formateras. Se tabellen längst ner i den här artikeln för giltiga format.
Exempel 1 – Grundläggande användning
Här är ett exempel för att demonstrera den första syntaxformen.
SELECT FROM_UNIXTIME(946562400) AS Result;
Resultat:
+---------------------+ | Result | +---------------------+ | 1999-12-31 00:00:00 | +---------------------+
Exempel 2 – Bråkdelar av sekunder
I det här exemplet tillhandahåller jag ett argument som inkluderar bråkdelar av sekunder.
SELECT FROM_UNIXTIME(946609199.999999) AS Result;
Resultat:
+----------------------------+ | Result | +----------------------------+ | 1999-12-31 12:59:59.999999 | +----------------------------+
Exempel 3 – Formatera resultatet
I det här exemplet tillhandahåller jag ett andra argument, som anger hur resultatet ska formateras.
SELECT FROM_UNIXTIME(946562400, '%W, %D %M %Y') AS Result;
Resultat:
+----------------------------+ | Result | +----------------------------+ | Friday, 31st December 1999 | +----------------------------+
Och här är en som inkluderar tidsdelen i formateringen:
SELECT FROM_UNIXTIME(946609199, '%h:%i %p, %D %M %Y') AS Result;
Resultat:
+------------------------------+ | Result | +------------------------------+ | 12:59 PM, 31st December 1999 | +------------------------------+
Exempel 4 – Numerisk kontext
Om FROM_UNIXTIME()
används i ett numeriskt sammanhang, tillhandahålls det resulterande datumet i numeriskt format.
Här är ett exempel som jämför resultat när de används i en strängkontext kontra numeriska.
SELECT FROM_UNIXTIME(946562400) As 'String', FROM_UNIXTIME(946562400) + 0 As 'Numeric';
Resultat:
+---------------------+----------------+ | String | Numeric | +---------------------+----------------+ | 1999-12-31 00:00:00 | 19991231000000 | +---------------------+----------------+
Tillgängliga specifikationer
Följande specifikationer kan användas för att ange returformatet. Formatvärdet måste börja med ett procenttecken (%
).
Specifierare | Beskrivning |
---|---|
%a | Förkortat veckodagsnamn (Sun ..Sat ) |
%b | Förkortat månadsnamn (Jan ..Dec ) |
%c | Månad, numerisk (0 ..12 ) |
%D | Dag i månaden med engelskt suffix (0th , 1st , 2nd , 3rd , …) |
%d | Dag i månaden, numerisk (00 ..31 ) |
%e | Dag i månaden, numerisk (0 ..31 ) |
%f | Mikrosekunder (000000 ..999999 ) |
%H | Timme (00 ..23 ) |
%h | Timme (01 ..12 ) |
%I | Timme (01 ..12 ) |
%i | Minuter, numeriska (00 ..59 ) |
%j | Dag på året (001 ..366 ) |
%k | Timme (0 ..23 ) |
%l | Timme (1 ..12 ) |
%M | Månadsnamn (January ..December ) |
%m | Månad, numerisk (00 ..12 ) |
%p | AM eller PM |
%r | Tid, 12 timmar (hh:mm:ss följt av AM eller PM ) |
%S | Sekunder (00 ..59 ) |
%s | Sekunder (00 ..59 ) |
%T | Tid, 24 timmar (hh:mm:ss ) |
%U | Vecka (00 ..53 ), där söndag är den första dagen i veckan; WEEK() läge 0 |
%u | Vecka (00 ..53 ), där måndag är den första dagen i veckan; WEEK() läge 1 |
%V | Vecka (01 ..53 ), där söndag är den första dagen i veckan; WEEK() läge 2; används med %X |
%v | Vecka (01 ..53 ), där måndag är den första dagen i veckan; WEEK() läge 3; används med %x |
%W | Veckodagens namn (Sunday ..Saturday ) |
%w | Veckodag (0 =Söndag..6 =lördag) |
%X | År för veckan där söndag är den första dagen i veckan, numeriskt, fyra siffror; används med %V |
%x | Veckans år, där måndag är den första dagen i veckan, numeriskt, fyra siffror; används med %v |
%Y | Årtal, siffror, fyra siffror |
%y | Årtal, numeriskt (två siffror) |
%% | En bokstavlig % tecken |
% | x , för någon "x ” inte listad ovan |