sql >> Databasteknik >  >> RDS >> Mysql

SEC_TO_TIME() Exempel – MySQL

När du använder MySQL kan du använda SEC_TO_TIME() funktion för att skapa en tid värde baserat på ett givet antal sekunder. I grund och botten anger du antalet sekunder som ett argument, och det kommer att konvertera det till en tid värde.

Så här fungerar det.

Syntax

Syntaxen ser ut så här:

SEC_TO_TIME(seconds)

Där seconds är antalet sekunder du vill konvertera till en tid värde.

Exempel 1 – Grundläggande användning

Här är ett exempel att visa.

SELECT SEC_TO_TIME(65);

Resultat:

+-----------------+
| SEC_TO_TIME(65) |
+-----------------+
| 00:01:05        |
+-----------------+

Exempel 2 – Ett större värde

Här är ett exempel med ett något större värde.

SELECT SEC_TO_TIME(6555);

Resultat:

+-------------------+
| SEC_TO_TIME(6555) |
+-------------------+
| 01:49:15          |
+-------------------+

Här är en med ett ännu större värde igen.

SELECT SEC_TO_TIME(655555);

Resultat:

+---------------------+
| SEC_TO_TIME(655555) |
+---------------------+
| 182:05:55           |
+---------------------+

Så tidsvärdet är inte begränsat till 24 timmar. Detta beror på att det inte är begränsat till att bara representera tiden på dygnet. Det kan också representera förfluten tid eller ett tidsintervall mellan två händelser.

Exempel 3 – Begränsningar av tidsdatatyp

time datatypen är begränsad till ett intervall från -838:59:59 till 838:59:59 . Om resultatet faller utanför det intervallet får du en varning.

SELECT SEC_TO_TIME(6555555);

Resultat:

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

Var dock försiktig. Tidsvärdet som visas kan vara missvisande, eftersom det stannar vid 838:59:59 även om resultatet skulle ha varit större än så.

Här är ett annat exempel som använder ännu ett större värde igen.

SELECT SEC_TO_TIME(65555550000);

Resultat:

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

Lägg märke till att vi får samma resultat som i föregående exempel, även om sekunderargumentet är mycket större i det här.

Exempel 4 – Numerisk kontext

Här är ett exempel på hur du använder SEC_TO_TIME() i ett numeriskt sammanhang. Vi gör detta genom att lägga till ett värde (i det här fallet 0 ) till uttalandet.

SELECT 
    SEC_TO_TIME(6555),
    SEC_TO_TIME(6555) + 0;

Resultat:

+-------------------+-----------------------+
| SEC_TO_TIME(6555) | SEC_TO_TIME(6555) + 0 |
+-------------------+-----------------------+
| 01:49:15          |                 14915 |
+-------------------+-----------------------+


  1. 4 sätt att få en vys definition med Transact-SQL

  2. CURRENT_TIMESTAMP Exempel – MySQL

  3. Partitionsfunktion COUNT() OVER möjlig med DISTINCT

  4. PostgreSQL Regex Ordgränser?