sql >> Databasteknik >  >> RDS >> MariaDB

Hur SEC_TO_TIME() fungerar i MariaDB

I MariaDB, SEC_TO_TIME() är en inbyggd datum- och tidsfunktion som returnerar ett tidsvärde baserat på antalet sekunder som anges som argument.

Syntax

Syntaxen ser ut så här:

SEC_TO_TIME(seconds)

Exempel

Här är ett exempel:

SELECT SEC_TO_TIME(1);

Resultat:

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

Här är en till:

SELECT SEC_TO_TIME(18520);

Resultat:

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

Utanför intervall sekunder

Omfånget för resultatet är begränsat till tidsdatatypen. En varning uppstår om argumentet motsvarar ett värde utanför det intervallet. Intervallet för MariaDB-tidsvärden är '-838:59:59.999999' till '838:59:59.999999' .

Hur som helst, här är ett exempel på en tid med värden som ligger i den övre delen av det accepterade intervallet:

SELECT SEC_TO_TIME(3020399);

Resultat:

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

Och här är en som går utanför intervallet:

SELECT SEC_TO_TIME(3020400);

Resultat:

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

Här är varningen:

SHOW WARNINGS;

Resultat:

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

Mikrosekunder

Vi kan gå ännu närmare det övre området genom att inkludera mikrosekunder:

SELECT SEC_TO_TIME(3020399.999999);

Resultat:

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

Negativa argument

Att ange ett negativt belopp resulterar i ett negativt tidsvärde.

Exempel:

SELECT SEC_TO_TIME(-3020399);

Resultat:

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

Argument saknas

Ringer SEC_TO_TIME() med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:

SELECT SEC_TO_TIME();

Resultat:

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

Och ett annat exempel:

SELECT SEC_TO_TIME( 123, 456 );

Resultat:

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

Gör en tid

Se även MAKETIME() för att konstruera ett tidsvärde från dess timmar, minuter och sekunder.


  1. Splitting Strings:Nu med mindre T-SQL

  2. Vilken SqlDbType mappar till varBinary(max)?

  3. skicka LIMIT som parametrar till MySQL sproc

  4. Oracle 18c Ny funktion:Onlinemodifiering av partitionering