我有下面的代码,功能很好。我距离完成它只有一步之遥,但我无法找到手头任务的最佳方法。 MySQL的? PHP?的JavaScript?
这是我的表:
如您所见,字段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上花了多长时间。
我希望我有道理,
感谢您的帮助
答案 0 :(得分:0)
更新3
<强> 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
其他想法
也许可能有办法将我们的最后三个结果字段合并为一个并将字符串格式化为更像军事时间。