拳击时钟之间的时差

时间:2017-12-16 15:44:00

标签: mysql

我有下面的代码,功能很好。我距离完成它只有一步之遥,但我无法找到手头任务的最佳方法。 MySQL的? PHP?的JavaScript?

这是我的表:

enter image description here

如您所见,字段UTL_DURATION为空。

说明

按原样,每次用户插入记录时,都会填充除UTL_DURATION之外的每个字段。这是因为UTL_DURATION是一个计算。

问题

我怎么能(用哪种语言做得最好)?如何从先前插入的记录中获取UTL_DTSTAMP,并将其与当前记录中当前插入的UTL_DTSTAMP 进行比较?

与......类似的东西。

SELECT TIMEDIFF('2017-12-16 08:33:55','2017-12-16 08:33:49') AS UTL_DURATION;

...告诉我们用户在SALE上花了多长时间。

我希望我有道理,

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

更新3

<强> TBL_USER_TIME_LOG

TBL_USER_TIME_LOG

CUSTOM SELECT QUERY

SELECT A.pk_user_time_log_id,
       A.user_id,
       A.utl_dtstamp,
       A.utl_event,
       A.utl_action,
       TIMESTAMPDIFF(HOUR, A.utl_dtstamp, B.utl_dtstamp) AS UTL_DURATION_IN_HRS,
       TIMESTAMPDIFF(MINUTE, A.utl_dtstamp, B.utl_dtstamp) AS UTL_DURATION_IN_MIN,
       TIMESTAMPDIFF(SECOND, A.utl_dtstamp, B.utl_dtstamp) AS UTL_DURATION_IN_SEC
FROM   tbl_user_time_log A
       INNER JOIN tbl_user_time_log B
               ON B.pk_user_time_log_id = ( A.pk_user_time_log_id + 1 )
ORDER  BY A.pk_user_time_log_id ASC;

CUSTOM SELECT QUERY RESULT

enter image description here

其他想法

也许可能有办法将我们的最后三个结果字段合并为一个并将字符串格式化为更像军事时间。