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

Jak UNIX_TIMESTAMP() działa w MariaDB

W MariaDB, UNIX_TIMESTAMP() jest wbudowaną funkcją daty i czasu, która zwraca uniksowy znacznik czasu na podstawie swojego argumentu (lub braku argumentu).

Działa to tak:

  • Po wywołaniu bez argument, zwraca uniksowy znacznik czasu (sekundy od ‘1970-01-01 00:00:00’ UTC) jako liczbę całkowitą bez znaku.
  • Kiedy dzwonisz z argument, zwraca wartość argumentu w sekundach od ‘1970-01-01 00:00:00’ UTC.

Funkcja odwrotna UNIX_TIMESTAMP() to FROM_UNIXTIME() .

Składnia

UNIX_TIMESTAMP() można wywołać na dwa sposoby:

UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)

Gdzie date to ciąg daty, ciąg daty i godziny, znacznik czasu lub liczba w formacie YYMMDD lub YYYYMMDD .

Przykład – bez argumentu

Oto przykład wywołania UNIX_TIMESTAMP() bez argumentu:

SELECT UNIX_TIMESTAMP();

Wynik:

+------------------+
| UNIX_TIMESTAMP() |
+------------------+
|       1622502492 |
+------------------+

To mówi nam, że kiedy uruchomiłem to oświadczenie, od 1970-01-01 00:00:00 minęło 1622502492 sekund.

Przykład – z argumentem

Oto przykład z argumentem:

SELECT UNIX_TIMESTAMP('1970-01-02');

Wynik:

+------------------------------+
| UNIX_TIMESTAMP('1970-01-02') |
+------------------------------+
|                        50400 |
+------------------------------+

W poniższym przykładzie wywołuję UNIX_TIMESTAMP() dwa razy; raz bez argumentu, a raz z NOW() jako argument.

SELECT 
    UNIX_TIMESTAMP(),
    UNIX_TIMESTAMP(NOW());

Wynik:

+------------------+-----------------------+
| UNIX_TIMESTAMP() | UNIX_TIMESTAMP(NOW()) |
+------------------+-----------------------+
|       1622502678 |            1622502678 |
+------------------+-----------------------+

Ciąg daty i godziny

W powyższym przykładzie NOW() zwraca wartość daty i godziny.

W tym przykładzie jawnie podaję ciąg daty i godziny:

SELECT UNIX_TIMESTAMP('2020-10-30 10:23:47');

Wynik:

+---------------------------------------+
| UNIX_TIMESTAMP('2020-10-30 10:23:47') |
+---------------------------------------+
|                            1604017427 |
+---------------------------------------+

Mikrosekundy

UNIX_TIMESTAMP() obsługuje mikrosekundy:

SELECT UNIX_TIMESTAMP('2020-10-30 10:23:47.123456');

Wynik:

+----------------------------------------------+
| UNIX_TIMESTAMP('2020-10-30 10:23:47.123456') |
+----------------------------------------------+
|                            1604017427.123456 |
+----------------------------------------------+

Daty numeryczne

Obsługiwane są daty numeryczne:

SELECT UNIX_TIMESTAMP(20201030);

Wynik:

+--------------------------+
| UNIX_TIMESTAMP(20201030) |
+--------------------------+
|               1603980000 |
+--------------------------+

Nieprawidłowy argument

Po przekazaniu jakichkolwiek nieprawidłowych argumentów, UNIX_TIMESTAMP() zwraca null z ostrzeżeniem:

SELECT UNIX_TIMESTAMP('Homer');

Wynik:

+-------------------------+
| UNIX_TIMESTAMP('Homer') |
+-------------------------+
|                    NULL |
+-------------------------+
1 row in set, 1 warning (0.001 sec)

Sprawdź ostrzeżenie:

SHOW WARNINGS;

Wynik:

+---------+------+-------------------------------+
| Level   | Code | Message                       |
+---------+------+-------------------------------+
| Warning | 1292 | Incorrect time value: 'Homer' |
+---------+------+-------------------------------+

Zbyt wiele argumentów

Wywołanie UNIX_TIMESTAMP() zbyt wiele argumentów powoduje błąd:

SELECT UNIX_TIMESTAMP('1970-01-02', '1970-01-03');

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB CHARACTER_LENGTH() Objaśnienie

  2. 4 funkcje, które zwracają część sekundową z wartości czasu w MariaDB

  3. MariaDB JSON_MERGE_PATCH() Objaśnienie

  4. Objaśnienie operatora MariaDB MINUS

  5. Jak automatycznie zarządzać przełączaniem awaryjnym bazy danych MySQL dla Moodle