sql >> Databasteknik >  >> RDS >> MariaDB

Hur FROM_UNIXTIME() fungerar i MariaDB

I MariaDB, FROM_UNIXTIME() är en inbyggd datum- och tidsfunktion som returnerar ett datetime-värde baserat på en given unix-tidsstämpel.

Du skickar unix-tidsstämpeln till funktionen när du anropar den.

Resultatet returneras i 'YYYY-MM-DD HH:MM:SS' eller YYYYMMDDHHMMSS.uuuuuu format, beroende på om funktionen används i en sträng eller numerisk kontext.

Värdet uttrycks i den aktuella tidszonen.

Syntax

Funktionen kan användas på följande sätt:

FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)

Där unix_timestamp är unix-tidsstämpeln och format är en valfri formatsträng för att formatera resultatet.

Exempel

Här är ett exempel:

SELECT FROM_UNIXTIME(1721428321);

Resultat:

+---------------------------+
| FROM_UNIXTIME(1721428321) |
+---------------------------+
| 2024-07-20 08:32:01       |
+---------------------------+

Mikrosekunder

Här är ett exempel som inkluderar mikrosekunder:

SELECT FROM_UNIXTIME(1721428321.123456);

Resultat:

+----------------------------------+
| FROM_UNIXTIME(1721428321.123456) |
+----------------------------------+
| 2024-07-20 08:32:01.123456       |
+----------------------------------+

Numerisk kontext

När du använder FROM_UNIXTIME() i ett numeriskt sammanhang returneras resultatet i YYYYMMDDHHMMSS.uuuuuu format:

SELECT FROM_UNIXTIME(1721428321.123456) + 0;

Resultat:

+--------------------------------------+
| FROM_UNIXTIME(1721428321.123456) + 0 |
+--------------------------------------+
|                20240720083201.123456 |
+--------------------------------------+

Formatera resultatet

Här är ett exempel på hur du skickar en formatsträng för att formatera resultatet:

SELECT FROM_UNIXTIME(1721428321, '%W, %D %M %Y');

Resultat:

+-------------------------------------------+
| FROM_UNIXTIME(1721428321, '%W, %D %M %Y') |
+-------------------------------------------+
| Saturday, 20th July 2024                  |
+-------------------------------------------+

Se MariaDB Date Format Strings för en lista över formatsträngar som kan användas med FROM_UNIXTIME() funktion.

Tidsstämpelgräns

Tidstämplar i MariaDB har ett maximalt värde på 2147483647 . Detta beror på den underliggande 32-bitars begränsningen. Att använda funktionen på en tidsstämpel utöver detta resulterar i null returneras.

Här är ett exempel som visar denna begränsning:

SELECT 
    FROM_UNIXTIME(2147483647),
    FROM_UNIXTIME(2147483648);

Resultat:

+---------------------------+---------------------------+
| FROM_UNIXTIME(2147483647) | FROM_UNIXTIME(2147483648) |
+---------------------------+---------------------------+
| 2038-01-19 13:14:07       | NULL                      |
+---------------------------+---------------------------+

Tidszon

Resultatet av FROM_UNIXTIME() uttrycks i den aktuella tidszonen.

Följande exempel använder samma unix-tidsstämpel med olika tidszoner:

SET time_zone = 'America/New_York';
SELECT FROM_UNIXTIME(2147483647);

Resultat:

+---------------------------+
| FROM_UNIXTIME(2147483647) |
+---------------------------+
| 2038-01-18 22:14:07       |
+---------------------------+

Byt till en annan tidszon och kör den igen:

SET time_zone = 'Africa/Abidjan';
SELECT FROM_UNIXTIME(2147483647);

Resultat:

+---------------------------+
| FROM_UNIXTIME(2147483647) |
+---------------------------+
| 2038-01-19 03:14:07       |
+---------------------------+

Aktuell Unix-tidsstämpel

Här är ett exempel som använder UNIX_TIMESTAMP() funktion för att returnera den aktuella unix-tidsstämpeln:

SELECT
    UNIX_TIMESTAMP(),
    FROM_UNIXTIME(UNIX_TIMESTAMP());

Resultat:

+------------------+---------------------------------+
| UNIX_TIMESTAMP() | FROM_UNIXTIME(UNIX_TIMESTAMP()) |
+------------------+---------------------------------+
|       1621734047 | 2021-05-23 11:40:47             |
+------------------+---------------------------------+

Argument saknas

Anropar FROM_UNIXTIME() med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:

SELECT FROM_UNIXTIME();

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'

Och ett annat exempel:

SELECT FROM_UNIXTIME( 1, 2, 3 );

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FROM_UNIXTIME'

  1. De 50 bästa SQL Server-intervjufrågorna du måste förbereda 2022

  2. Hur ON CONFLICT fungerar i SQLite

  3. Påskynda mysql dumpningar och importer

  4. Kontrollera Constraint Calling en funktion Oracle SQL-utvecklare