Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuỗi MySQL đến DATE / TIME hoặc TIMESTAMP

Bạn cần STR_TO_DATE() để chuyển đổi chuỗi thành ngày tháng. Cân nhắc:

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

Lợi nhuận:

2017-10-18 10:11:03

Khi các chuỗi của bạn được chuyển đổi thành ngày tháng, bạn có thể sử dụng timestampdiff() để tính toán sự khác biệt giữa chúng và chuyển kết quả trở lại thời gian bằng cách sử dụng 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

Bản trình diễn trên 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. MySQL:Đặt tên cho khóa chính trong câu lệnh CREATE TABLE

  2. Làm thế nào để đặt lại khóa chính của một bảng?

  3. Sử dụng nhóm không chụp trong MySQL REGEXP

  4. Các hàm được lưu trữ trong MySQL - Tên cột &bảng động / biến

  5. Làm thế nào để lưu trữ tệp .txt Cơ sở dữ liệu MySQL?