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

Jak funguje TIME_TO_SEC() v MariaDB

V MariaDB, TIME_TO_SEC() je vestavěná funkce data a času, která vrací svůj časový argument převedený na sekundy.

Syntaxe

Syntaxe vypadá takto:

TIME_TO_SEC(time)

Kde time je hodnota času, která má být převedena na sekundy.

Příklad

Zde je příklad:

SELECT TIME_TO_SEC('00:01:00');

Výsledek:

+-------------------------+
| TIME_TO_SEC('00:01:00') |
+-------------------------+
|                      60 |
+-------------------------+

Zde je to s několika dalšími časovými hodnotami:

SELECT 
    TIME_TO_SEC('01:00:00'),
    TIME_TO_SEC('15:37:46');

Výsledek:

+-------------------------+-------------------------+
| TIME_TO_SEC('01:00:00') | TIME_TO_SEC('15:37:46') |
+-------------------------+-------------------------+
|                    3600 |                   56266 |
+-------------------------+-------------------------+

Mikrosekundy

TIME_TO_SEC() podporuje mikrosekundy:

SELECT TIME_TO_SEC('00:01:00.123456');

Výsledek:

+--------------------------------+
| TIME_TO_SEC('00:01:00.123456') |
+--------------------------------+
|                      60.123456 |
+--------------------------------+

Větší hodiny

TIME hodnoty mohou být v rozsahu '-838:59:59.999999' na '838:59:59.999999' .

Hodinová část proto může být mnohem vyšší než 23 :

SELECT TIME_TO_SEC('838:59:59');

Výsledek:

+--------------------------+
| TIME_TO_SEC('838:59:59') |
+--------------------------+
|                  3020399 |
+--------------------------+

Záporné časové hodnoty

Zde je příklad se zápornou časovou hodnotou:

SELECT TIME_TO_SEC('-820:38:15');

Výsledek:

+---------------------------+
| TIME_TO_SEC('-820:38:15') |
+---------------------------+
|                  -2954295 |
+---------------------------+

Doby mimo rozsah

Pokud však zadáte hodnotu času mimo rozsah, vrátí se sekundy pro horní hranici tohoto rozsahu spolu s varováním:

SELECT TIME_TO_SEC('920:38:15');

Výsledek:

+--------------------------+
| TIME_TO_SEC('920:38:15') |
+--------------------------+
|                  3020399 |
+--------------------------+
1 row in set, 1 warning (0.002 sec)

Podívejme se na varování:

SHOW WARNINGS;

Výsledek:

+---------+------+---------------------------------------------+
| Level   | Code | Message                                     |
+---------+------+---------------------------------------------+
| Warning | 1292 | Truncated incorrect time value: '920:38:15' |
+---------+------+---------------------------------------------+

Neplatný argument

Po předání neplatných argumentů TIME_TO_SEC() vrátí null s varováním:

SELECT TIME_TO_SEC('Homer');

Výsledek:

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

Zkontrolujte varování:

SHOW WARNINGS;

Výsledek:

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

Chybí argument

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

SELECT TIME_TO_SEC();

Výsledek:

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

A další příklad:

SELECT TIME_TO_SEC('10:09:10', 2);

Výsledek:

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

  1. SELECT v zobrazení obsahuje poddotaz v klauzuli FROM

  2. Jak omezit řádky v sadě výsledků MySQL

  3. Vypočítejte MD5 hash řetězce UTF8

  4. Kolekce Oracle PL/SQL – Vytvořte vnořenou tabulku v databázi