Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SUBTIME() Przykłady – MySQL

W MySQL możesz użyć SUBTIME() funkcja odejmowania wartości czasu od wyrażenia czasu lub daty i godziny.

Działa to tak, że podajesz dwa argumenty; pierwsza to wartość czasu lub daty i godziny, a druga to wartość czasu. SUBTIME() funkcja następnie odejmuje drugi argument od pierwszego i zwraca wynik.

Składnia

Składnia wygląda tak:

SUBTIME(expr1,expr2)

Gdzie expr1 może być wyrażeniem czasu lub daty i godziny, a expr2 jest wyrażeniem czasu.

I tak expr2 jest odejmowane od expr1 .

Przykład 1 – Podstawowe użycie

Oto przykład do zademonstrowania.

SELECT SUBTIME('12:35:00', '1:30');

Wynik:

+-----------------------------+
| SUBTIME('12:35:00', '1:30') |
+-----------------------------+
| 11:05:00                    |
+-----------------------------+

Przykład 2 – Odejmowanie sekund

W tym przykładzie odejmuję również liczbę sekund od wartości czasu.

SELECT SUBTIME('12:35:00', '1:30:30');

Wynik:

+--------------------------------+
| SUBTIME('12:35:00', '1:30:30') |
+--------------------------------+
| 11:04:30                       |
+--------------------------------+

I otrzymujemy ten sam wynik, nawet jeśli pominiemy część sekund w początkowym argumencie czasu.

SELECT SUBTIME('12:35', '1:30:30');

Wynik:

+-----------------------------+
| SUBTIME('12:35', '1:30:30') |
+-----------------------------+
| 11:04:30                    |
+-----------------------------+

Przykład 3 – ułamki sekund

Możesz także odjąć część ułamków sekund.

SELECT SUBTIME('12:35:00.888888', '1:30:30.555555');

Wynik:

+----------------------------------------------+
| SUBTIME('12:35:00.888888', '1:30:30.555555') |
+----------------------------------------------+
| 11:04:30.333333                              |
+----------------------------------------------+

Przykład 4 – Wyniki negatywne

Całkiem słuszne jest otrzymanie ujemnej wartości wyniku.

SELECT SUBTIME('12:35:00', '20:30:30');

Wynik:

+---------------------------------+
| SUBTIME('12:35:00', '20:30:30') |
+---------------------------------+
| -07:55:30                       |
+---------------------------------+

Przykład 5 – Odejmowanie od wartości daty i godziny

W tym przykładzie odejmuję od wartości daty i godziny (w przeciwieństwie do tylko wartości czasu, jak w poprzednich przykładach).

SELECT SUBTIME('2021-01-01 12:35:00', '1:30:30');

Wynik:

+-------------------------------------------+
| SUBTIME('2021-01-01 12:35:00', '1:30:30') |
+-------------------------------------------+
| 2021-01-01 11:04:30                       |
+-------------------------------------------+

W tym przypadku część daty pozostała niezmieniona, ponieważ drugi argument nie był wystarczająco duży, aby na nią wpłynąć.

W następnym przykładzie zwiększam drugi argument, aby był wystarczająco duży, aby wpłynąć na datę.

SELECT SUBTIME('2021-01-01 12:35:00', '100:30:30');

Wynik:

+---------------------------------------------+
| SUBTIME('2021-01-01 12:35:00', '100:30:30') |
+---------------------------------------------+
| 2020-12-28 08:04:30                         |
+---------------------------------------------+

Jak widać w tym przykładzie, wartości czasu nie są ograniczone do mniej niż 24 godzin (mogą wynosić od -838:59:59 do 838:59:59 .

Możesz też robić takie rzeczy:

SELECT SUBTIME('2021-01-01 12:35:00', '4 4:30:30');

Wynik:

+---------------------------------------------+
| SUBTIME('2021-01-01 12:35:00', '4 4:30:30') |
+---------------------------------------------+
| 2020-12-28 08:04:30                         |
+---------------------------------------------+

Przykład 6 – Ograniczenia czasu Wartość

Jak wspomniano, typ danych czasu może wynosić od -838:59:59 do 838:59:59 . Oznacza to, że nie możesz nic więcej odjąć. Oznacza to również, że wynik nie może być poza tym zakresem. Na przykład nie możesz tego zrobić:

SELECT SUBTIME('12:35:00', '20000000:30:30');

Wynik:

+---------------------------------------+
| SUBTIME('12:35:00', '20000000:30:30') |
+---------------------------------------+
| -826:24:59                            |
+---------------------------------------+
1 row in set, 1 warning (0.01 sec)

Wynik jest całkowicie błędny i MySQL wyświetla ostrzeżenie.

Ale to nie tylko drugi argument, na który musisz uważać. Ten sam problem napotkasz również, jeśli pierwszy argument ma początkowo wartość ujemną:

SELECT SUBTIME('-800:35:00', '50:30:30');

Wynik:

+-----------------------------------+
| SUBTIME('-800:35:00', '50:30:30') |
+-----------------------------------+
| -838:59:59                        |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Transformacja wiersza do kolumny w MySQL

  2. Mytop – przydatne narzędzie do monitorowania wydajności MySQL/MariaDB w systemie Linux

  3. Używanie MySQLi do WSTAWIANIA danych do bazy danych

  4. Czy istnieje prosty sposób na przekonwertowanie danych MySQL do tytułu tytułowego?

  5. Jak zaimportować plik .sql do bazy danych mysql przy użyciu PHP?