Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 到上一行的间隔_Mysql_Sql - Fatal编程技术网

Mysql 到上一行的间隔

Mysql 到上一行的间隔,mysql,sql,Mysql,Sql,我想得到表中各行之间的间隔 当我使用这个查询时,我从上一个时间戳中获得秒数。 但只有当两个时间戳在同一分钟内时,结果才是正确的 SELECT Time_Stamp, State, Time_Stamp - LAG(Time_Stamp) OVER(ORDER BY Time_Stamp) AS Seconds_In_State FROM State_Table ORDER BY Time_Stamp; 如何以时间间隔获得结果?您可以使用timestampdiff(

我想得到表中各行之间的间隔

当我使用这个查询时,我从上一个时间戳中获得秒数。 但只有当两个时间戳在同一分钟内时,结果才是正确的

SELECT 
    Time_Stamp, 
    State,
    Time_Stamp - LAG(Time_Stamp) OVER(ORDER BY Time_Stamp)
AS Seconds_In_State
FROM State_Table
ORDER BY Time_Stamp; 

如何以时间间隔获得结果?

您可以使用
timestampdiff()
函数。我用分钟作为单位

该单位应为以下单位之一:分形秒(微秒)、秒、分、时、日、周、月、季或年。Unit是此处要计算差异的测量单位

SELECT 
    Time_Stamp, 
    State,
    TIMESTAMPDIFF(minute, LAG(Time_Stamp) OVER(ORDER BY Time_Stamp),Time_Stamp)
AS Minute_In_State
FROM State_Table
ORDER BY Time_Stamp; 

您正在使用哪个dbms?您的代码基本正确。您可能误解了结果。我使用的是MySQL。时间戳03:56到时间戳04:30,结果是74。[430-356=74]所以我不能用DATETIME数据类型完成这项工作?谢谢Kazi,这非常有用…:-)不客气。最好的妻子。