MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak FROM_UNIXTIME() działa w MariaDB

W MariaDB, FROM_UNIXTIME() to wbudowana funkcja daty i czasu, która zwraca wartość daty i czasu na podstawie podanego uniksowego znacznika czasu.

Uniksowy znacznik czasu przekazujesz funkcji, kiedy ją wywołujesz.

Wynik jest zwracany w formacie 'YYYY-MM-DD HH:MM:SS' lub YYYYMMDDHHMMSS.uuuuuu format, w zależności od tego, czy funkcja jest używana w kontekście łańcuchowym czy liczbowym.

Wartość jest wyrażona w aktualnej strefie czasowej.

Składnia

Funkcji można używać w następujący sposób:

FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)

Gdzie unix_timestamp to uniksowy znacznik czasu i format jest opcjonalnym ciągiem formatu do sformatowania wyniku.

Przykład

Oto przykład:

SELECT FROM_UNIXTIME(1721428321);

Wynik:

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

Mikrosekundy

Oto przykład obejmujący mikrosekundy:

SELECT FROM_UNIXTIME(1721428321.123456);

Wynik:

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

Kontekst numeryczny

Używając FROM_UNIXTIME() w kontekście numerycznym wynik jest zwracany w formacie YYYYMMDDHHMMSS.uuuuuu format:

SELECT FROM_UNIXTIME(1721428321.123456) + 0;

Wynik:

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

Sformatuj wynik

Oto przykład przekazywania ciągu formatującego w celu sformatowania wyniku:

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

Wynik:

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

Zobacz ciągi formatu daty MariaDB, aby uzyskać listę ciągów formatujących, których można użyć z FROM_UNIXTIME() funkcja.

Limit sygnatury czasowej

Sygnatury czasowe w MariaDB mają maksymalną wartość 2147483647 . Wynika to z podstawowego ograniczenia 32-bitowego. Użycie funkcji na znaczniku czasu poza tym powoduje null zostanie zwrócony.

Oto przykład demonstrujący to ograniczenie:

SELECT 
    FROM_UNIXTIME(2147483647),
    FROM_UNIXTIME(2147483648);

Wynik:

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

Strefa czasowa

Wynik FROM_UNIXTIME() jest wyrażony w aktualnej strefie czasowej.

Poniższe przykłady używają tego samego uniksowego znacznika czasu z różnymi strefami czasowymi:

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

Wynik:

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

Przełącz się na inną strefę czasową i uruchom ją ponownie:

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

Wynik:

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

Aktualna sygnatura czasowa systemu Unix

Oto przykład, który używa UNIX_TIMESTAMP() funkcja zwracająca aktualny uniksowy znacznik czasu:

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

Wynik:

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

Brakujący argument

Wywołanie FROM_UNIXTIME() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:

SELECT FROM_UNIXTIME();

Wynik:

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

I kolejny przykład:

SELECT FROM_UNIXTIME( 1, 2, 3 );

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa MINUTE() w MariaDB

  2. Jak odjąć rok od daty w MariaDB

  3. Jak UTC_TIME() działa w MariaDB

  4. 2 sposoby na wyświetlenie listy wszystkich funkcji w MariaDB

  5. MySQL vs MariaDB vs Percona Server:porównanie funkcji bezpieczeństwa