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

Ciąg znaków MySQL do DATE / TIME lub TIMESTAMP

Potrzebujesz STR_TO_DATE() aby przekonwertować ciąg na datę. Rozważ:

select str_to_date(
      'Wed, 18   Oct   2017 10:11:03 GMT',
      '%a, %d %b %Y %T GMT'
 )

Plony:

2017-10-18 10:11:03

Po przekonwertowaniu ciągów na daty możesz użyć timestampdiff() aby obliczyć różnicę między nimi i cofnąć wynik do czasu za pomocą sec_to_time() :

select
    person,
    taskID,
    sec_to_time(
            timestampdiff(
            second, 
            str_to_date(Start_time, '%a, %d %b %Y %T GMT'),
            str_to_date(End_time, '%a, %d %b %Y %T GMT')
        )
    ) time_on_task
from mytable

Demo na DB Fiddlde :

| person | taskID | time_on_task |
| ------ | ------ | ------------ |
| Alpha  | 1      | 00:00:33     |
| Alpha  | 2      | 00:00:12     |
| Beta   | 1      | 00:00:46     |
| Alpha  | 3      | 00:01:10     |
| Gamma  | 1      | 03:03:42     |
| Beta   | 2      | 00:00:23     |



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy MySQL indeksuje wartości NULL?

  2. Tworzenie pustego wiersza dla powtarzającego się wiersza

  3. Liczba wierszy w Doktrynie 2

  4. jQuery Sprawdź poprawność użycia metody zdalnej, aby sprawdzić, czy nazwa użytkownika już istnieje

  5. Jak zabezpieczyć połączenie z bazą danych?