两个日期时间之间的MYSQL差异

罗伯托·富恩特斯·里斯科(Roberto Fuentes Risco):

我有下表。

表1

id_user | action |  time 
--------+--------+----------------------
1       | 2      | '2009-05-18 11:45:42'
1       | 2      | '2009-05-18 11:45:45'
1       | 3      | '2009-05-18 11:45:50'
1       | 2      | '2009-05-18 11:46:50'

我想获得结果,其中该列timediff包含timediff与上一行以秒为单位。

表2

id_user | action | timediff
--------+--------+----------
1       | 2      | 3
1       | 2      | 5
1       | 3      | 60

我尝试了此查询,但是成功了:

SELECT
    id_user,action, 
    TIMESTAMPDIFF(SECOND,LEAD(time),time) OVER (PARTITION BY id_user, ORDER BY time) AS timediff
FROM table1

...但是会引发错误。:/

我看过其他的答案,但我没有看到一个使用LEADLAGTIMESTAMPDIFF同时进行。

提前致谢。

去世:

您的语法错误,必须使用以下命令:

SELECT id_user,
       action, 
       TIMESTAMPDIFF(
         SECOND, 
         time, 
         LEAD(time) OVER (PARTITION BY id_user ORDER BY time)
       )  AS timediff 
FROM table1

TIMESTAMPDIFF()函数的第2和3D参数是日期时间表达式和第二从3D中减去。

参见演示
结果:

| id_user | action | timediff |
| ------- | ------ | -------- |
| 1       | 2      | 3        |
| 1       | 2      | 5        |
| 1       | 3      | 60       |
| 1       | 2      |          |

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章