sql >> Databáze >  >> RDS >> MariaDB

Jak FROM_UNIXTIME() funguje v MariaDB

V MariaDB, FROM_UNIXTIME() je vestavěná funkce data a času, která vrací hodnotu datetime na základě daného unixového časového razítka.

Unixové časové razítko předáte funkci, když ji voláte.

Výsledek je vrácen v 'YYYY-MM-DD HH:MM:SS' nebo YYYYMMDDHHMMSS.uuuuuu formát, v závislosti na tom, zda je funkce použita v řetězcovém nebo číselném kontextu.

Hodnota je vyjádřena v aktuálním časovém pásmu.

Syntaxe

Funkci lze použít následujícími způsoby:

FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)

Kde unix_timestamp je unixové časové razítko a format je volitelný formátovací řetězec pro formátování výsledku.

Příklad

Zde je příklad:

SELECT FROM_UNIXTIME(1721428321);

Výsledek:

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

Mikrosekundy

Zde je příklad, který zahrnuje mikrosekundy:

SELECT FROM_UNIXTIME(1721428321.123456);

Výsledek:

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

Číselný kontext

Při použití FROM_UNIXTIME() v číselném kontextu je výsledek vrácen v YYYYMMDDHHMMSS.uuuuuu formát:

SELECT FROM_UNIXTIME(1721428321.123456) + 0;

Výsledek:

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

Formátovat výsledek

Zde je příklad předání formátovacího řetězce pro formátování výsledku:

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

Výsledek:

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

Seznam formátovacích řetězců, které lze použít s FROM_UNIXTIME(), najdete v části MariaDB Date Format Strings funkce.

Limit časového razítka

Časová razítka v MariaDB mají maximální hodnotu 2147483647 . To je způsobeno základním 32bitovým omezením. Použití funkce na časovém razítku za tímto výsledkem má za následek null se vrací.

Zde je příklad, který toto omezení demonstruje:

SELECT 
    FROM_UNIXTIME(2147483647),
    FROM_UNIXTIME(2147483648);

Výsledek:

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

Časové pásmo

Výsledek FROM_UNIXTIME() je vyjádřeno v aktuálním časovém pásmu.

Následující příklady používají stejné unixové časové razítko s různými časovými pásmy:

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

Výsledek:

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

Přepněte na jiné časové pásmo a spusťte jej znovu:

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

Výsledek:

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

Aktuální časové razítko Unix

Zde je příklad, který používá UNIX_TIMESTAMP() funkce pro vrácení aktuálního unixového časového razítka:

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

Výsledek:

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

Chybí argument

Volání FROM_UNIXTIME() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT FROM_UNIXTIME();

Výsledek:

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

A další příklad:

SELECT FROM_UNIXTIME( 1, 2, 3 );

Výsledek:

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

  1. postgresql instalace jediné instance

  2. Jak se připojit k MySQL pomocí Perlu

  3. Proč jsou vícenásobná připojení špatná pro dotaz nebo nebrání optimalizaci

  4. Jak aktualizovat všechny sloupce pomocí INSERT ... ON CONFLICT ...?