sql >> Database >  >> RDS >> MariaDB

Hoe FROM_UNIXTIME() werkt in MariaDB

In MariaDB, FROM_UNIXTIME() is een ingebouwde datum- en tijdfunctie die een datetime-waarde retourneert op basis van een gegeven Unix-tijdstempel.

U geeft de Unix-tijdstempel door aan de functie wanneer u deze aanroept.

Het resultaat wordt geretourneerd in 'YYYY-MM-DD HH:MM:SS' of YYYYMMDDHHMMSS.uuuuuu formaat, afhankelijk van of de functie in een tekenreeks of in een numerieke context wordt gebruikt.

De waarde wordt uitgedrukt in de huidige tijdzone.

Syntaxis

De functie kan op de volgende manieren worden gebruikt:

FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)

Waar unix_timestamp is de Unix-tijdstempel, en format is een optionele opmaakreeks om het resultaat op te maken.

Voorbeeld

Hier is een voorbeeld:

SELECT FROM_UNIXTIME(1721428321);

Resultaat:

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

Microseconden

Hier is een voorbeeld met microseconden:

SELECT FROM_UNIXTIME(1721428321.123456);

Resultaat:

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

Numerieke context

Bij gebruik van FROM_UNIXTIME() in een numerieke context wordt het resultaat geretourneerd in YYYYMMDDHHMMSS.uuuuuu formaat:

SELECT FROM_UNIXTIME(1721428321.123456) + 0;

Resultaat:

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

Maak het resultaat op

Hier is een voorbeeld van het doorgeven van een format string om het resultaat op te maken:

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

Resultaat:

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

Zie MariaDB Date Format Strings voor een lijst met format strings die kunnen worden gebruikt met de FROM_UNIXTIME() functie.

Tijdstempellimiet

Tijdstempels in MariaDB hebben een maximale waarde van 2147483647 . Dit komt door de onderliggende 32-bits beperking. Het gebruik van de functie op een tijdstempel buiten dit resulteert in null wordt geretourneerd.

Hier is een voorbeeld dat deze beperking aantoont:

SELECT 
    FROM_UNIXTIME(2147483647),
    FROM_UNIXTIME(2147483648);

Resultaat:

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

Tijdzone

Het resultaat van FROM_UNIXTIME() wordt uitgedrukt in de huidige tijdzone.

De volgende voorbeelden gebruiken dezelfde Unix-tijdstempel met verschillende tijdzones:

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

Resultaat:

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

Schakel over naar een andere tijdzone en voer het opnieuw uit:

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

Resultaat:

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

Huidige Unix-tijdstempel

Hier is een voorbeeld dat de UNIX_TIMESTAMP() . gebruikt functie om de huidige Unix-tijdstempel te retourneren:

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

Resultaat:

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

Ontbrekend argument

Bellen FROM_UNIXTIME() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT FROM_UNIXTIME();

Resultaat:

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

En nog een voorbeeld:

SELECT FROM_UNIXTIME( 1, 2, 3 );

Resultaat:

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

  1. Hoe maak je een histogram in MySQL?

  2. Een menu maken in SQLPlus of PL/SQL

  3. Manieren om SQL Server Database te migreren naar Azure SQL Database

  4. Google BigQuery ODBC-stuurprogramma