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

Jak TO_SECONDS() działa w MariaDB?

W MariaDB, TO_SECONDS() jest wbudowaną funkcją daty i czasu, która zwraca liczbę sekund od roku 0 do podanego wyrażenia daty lub czasu.

Składnia

Składnia wygląda tak:

TO_SECONDS(expr)

Gdzie expr jest wartością daty lub czasu.

Przykład

Oto przykład:

SELECT TO_SECONDS('2020-10-30');

Wynik:

+--------------------------+
| TO_SECONDS('2020-10-30') |
+--------------------------+
|              63771235200 |
+--------------------------+

Oto kilka innych wartości czasu:

SELECT 
    TO_SECONDS('0000-01-01'),
    TO_SECONDS('1234-10-30');

Wynik:

+--------------------------+--------------------------+
| TO_SECONDS('0000-01-01') | TO_SECONDS('1234-10-30') |
+--------------------------+--------------------------+
|                    86400 |              38967436800 |
+--------------------------+--------------------------+

Wartości daty i godziny

Oto przykład, który używa wartości daty i godziny:

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

Wynik:

+-----------------------------------+
| TO_SECONDS('2020-10-30 10:23:47') |
+-----------------------------------+
|                       63771272627 |
+-----------------------------------+

Mikrosekundy

TO_SECONDS() ignoruje mikrosekundy:

SELECT TO_SECONDS('2020-10-30 10:23:47.999999');

Wynik:

+------------------------------------------+
| TO_SECONDS('2020-10-30 10:23:47.999999') |
+------------------------------------------+
|                              63771272627 |
+------------------------------------------+

Daty numeryczne

Obsługiwane są daty numeryczne:

SELECT TO_SECONDS(20201030);

Wynik:

+----------------------+
| TO_SECONDS(20201030) |
+----------------------+
|          63771235200 |
+----------------------+

Aktualna data/godzina

Oto przykład, który używa NOW() aby zwrócić liczbę sekund w oparciu o bieżącą datę i godzinę:

SELECT 
    NOW(),
    TO_SECONDS(NOW());

Wynik:

+---------------------+-------------------+
| NOW()               | TO_SECONDS(NOW()) |
+---------------------+-------------------+
| 2021-05-31 09:34:16 |       63789672856 |
+---------------------+-------------------+

Jeśli jednak użyjemy CURDATE() , otrzymamy inny wynik (ponieważ CURDATE() zwraca wartość daty, natomiast NOW() zwraca wartość daty/godziny).

SELECT 
    NOW(),
    TO_SECONDS(NOW()),
    CURDATE(),
    TO_SECONDS(CURDATE());

Wynik (przy użyciu wyjścia pionowego):

                NOW(): 2021-05-31 09:35:01
    TO_SECONDS(NOW()): 63789672901
            CURDATE(): 2021-05-31
TO_SECONDS(CURDATE()): 63789638400

Nieprawidłowy argument

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

SELECT TO_SECONDS('Homer');

Wynik:

+---------------------+
| TO_SECONDS('Homer') |
+---------------------+
|                NULL |
+---------------------+
1 row in set, 1 warning (0.000 sec)

Sprawdź ostrzeżenie:

SHOW WARNINGS;

Wynik:

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

Brakujący argument

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

SELECT TO_SECONDS();

Wynik:

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

I kolejny przykład:

SELECT TO_SECONDS('2020-10-08', '10:09:10');

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przegląd MariaDB Xpand (dawniej ClustrixDB)

  2. MariaDB JSON_TABLE() Objaśnienie

  3. Wskazówki dotyczące zarządzania schematami dla MySQL i MariaDB

  4. Jak wdrożyć bazę danych Open edX MySQL w celu zapewnienia wysokiej dostępności

  5. Wprowadzenie do wyszukiwania pełnotekstowego w MariaDB