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

Jak funguje SEC_TO_TIME() v MariaDB

V MariaDB, SEC_TO_TIME() je vestavěná funkce data a času, která vrací hodnotu času na základě počtu sekund poskytnutých jako argumenty.

Syntaxe

Syntaxe vypadá takto:

SEC_TO_TIME(seconds)

Příklad

Zde je příklad:

SELECT SEC_TO_TIME(1);

Výsledek:

+----------------+
| SEC_TO_TIME(1) |
+----------------+
| 00:00:01       |
+----------------+

Tady je další:

SELECT SEC_TO_TIME(18520);

Výsledek:

+--------------------+
| SEC_TO_TIME(18520) |
+--------------------+
| 05:08:40           |
+--------------------+

Mimo rozsah sekund

Rozsah výsledku je omezen na rozsah typu časových dat. Pokud argument odpovídá hodnotě mimo tento rozsah, zobrazí se varování. Rozsah časových hodnot MariaDB je '-838:59:59.999999' na '838:59:59.999999' .

Každopádně zde je příklad času s hodnotami, které jsou na horní hranici jejich přijatelného rozsahu:

SELECT SEC_TO_TIME(3020399);

Výsledek:

+----------------------+
| SEC_TO_TIME(3020399) |
+----------------------+
| 838:59:59            |
+----------------------+

A tady je jeden, který je mimo rozsah:

SELECT SEC_TO_TIME(3020400);

Výsledek:

+----------------------+
| SEC_TO_TIME(3020400) |
+----------------------+
| 838:59:59            |
+----------------------+
1 row in set, 1 warning (0.000 sec)

Zde je varování:

SHOW WARNINGS;

Výsledek:

+---------+------+----------------------------------------------+
| Level   | Code | Message                                      |
+---------+------+----------------------------------------------+
| Warning | 1292 | Truncated incorrect seconds value: '3020400' |
+---------+------+----------------------------------------------+

Mikrosekundy

Můžeme se ještě více přiblížit k hornímu rozsahu zahrnutím mikrosekund:

SELECT SEC_TO_TIME(3020399.999999);

Výsledek:

+-----------------------------+
| SEC_TO_TIME(3020399.999999) |
+-----------------------------+
| 838:59:59.999999            |
+-----------------------------+

Negativní argumenty

Zadání záporné částky má za následek zápornou časovou hodnotu.

Příklad:

SELECT SEC_TO_TIME(-3020399);

Výsledek:

+-----------------------+
| SEC_TO_TIME(-3020399) |
+-----------------------+
| -838:59:59            |
+-----------------------+

Chybí argument

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

SELECT SEC_TO_TIME();

Výsledek:

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

A další příklad:

SELECT SEC_TO_TIME( 123, 456 );

Výsledek:

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

Udělejte si čas

Viz také MAKETIME() pro konstrukci časové hodnoty z jejích hodin, minut a sekund.


  1. Přidejte měsíce k datu v SQLite

  2. Jak vytvořit nový databázový diagram pomocí MySQL Workbench

  3. Transformace řádků na sloupce v MySQL

  4. Jak aktualizovat velkou tabulku s miliony řádků v SQL Server?