2017-06-26 4 views
0

Donc j'ai une colonne activitylog dans review tableau Table screenshot avec le contenu similaire à <u>2016-11-16 15:56:15</u> - Sent by author to LIGHT <br /><u>2016-11-17 07:31:15</u> - Reviewed and forwarded to ALL <br /><u>2016-12-17 11:28:31</u> - Submitted to final destination. dans chaque rangée. One entry in activity log screenshotComment puis-je trouver la différence moyenne deux fois dans un journal d'activité en SQL?

Je n'ai aucune idée comment trouver la moyenne datediff entre le temps pour "Envoyé par l'auteur" et le temps pour "Soumis à la destination finale" pour tous les utilisateurs (les lignes). Tous les journaux d'activité n'ont pas le "Soumis à la destination finale", comme certains ne l'ont pas encore fait. Toute suggestion ou aide serait géniale. Désolé si cette question était confuse dans un sens, je suis un peu nouveau à poser des questions sur stackoverflow.

Répondre

0

Voici une méthode:

select str_to_date(substring_index(r.activitylog, '</u>', 1), 19), '%Y-%m-%d %H:%i:%s') as sent_time, 
     (case when r.activitylog like '%Submitted to final destination' 
      then str_to_date(left(right(r.activitylog, 57), 19), '%Y-%m-%d %H:%i:%s') 
     end) as submit_time 
from review r; 

(Note: Le « 57 » est une estimation raisonnable, mais peut-être un peu hors.)

Ensuite, vous pouvez faire ce que vous voulez avec les valeurs - datediff(), avg() `ou quoi que ce soit

+0

l'attente serait-il de activitylog? Je pose cette question parce que activitylog est une colonne contenant tous les journaux d'activité des utilisateurs dans ma table de révision. – evkyee