2017-02-26 24 views
1

我試圖計算end_datetimestart_datetime統計的不同行之間的時間差,並導致pause_time設置。如何計算一個表中不同行和列之間的timestampdiff?

我這樣的查詢沒有執行。

update statistic 
set pause_time = TIMESTAMPDIFF(hour, a.start_datetime, b.end_datetime) 
from statistic a 
inner join statistic b on a.id = (b.id - 1) 
order by a.id asc 

我收到一個錯誤:

check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM statistic a INNER JOIN statistic b ON b.id=(a.id - 1) ORDER BY a.id ASC' at line 1 QMYSQL. My table statistic:

<html> <head> <title></title> </head> <body> <div> id<span class="Apple-tab-span" style="white-space:pre"> </span>&nbsp; &nbsp;| &nbsp; &nbsp;start_datetime<span class="Apple-tab-span" style="white-space:pre"> </span>&nbsp; &nbsp; &nbsp;| &nbsp;&nbsp;end_datetime<span class="Apple-tab-span" style="white-space:pre"> </span>&nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp;pause_time</div> <p> <span style="font-size:12px;">1 <span class="Apple-tab-span" style="white-space:pre"> </span>&nbsp; &nbsp; &nbsp;| &nbsp; &nbsp;2016-10-13T23:14:05<span class="Apple-tab-span" style="white-space:pre"> </span>&nbsp;&nbsp;|&nbsp; <strong><span style="color:#f00;">&nbsp;2016-10-14T07:03:02</span>&nbsp;<span class="Apple-tab-span" style="white-space:pre"> </span></strong>|&nbsp; &nbsp; &nbsp;&nbsp;</span></p> <p> <span style="font-size:12px;">2<span class="Apple-tab-span" style="white-space:pre"> </span>&nbsp; &nbsp; &nbsp; | &nbsp; <span style="color:#f00;"><strong>&nbsp;2016-10-14T15:25:56&nbsp;</strong>&nbsp;</span>| &nbsp;&nbsp;2016-10-14T22:03:50<span class="Apple-tab-span" style="white-space:pre"> </span>&nbsp;|</span></p> <p> <span style="font-size:12px;">3 &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre"> </span>| &nbsp; &nbsp;2016-10-13T15:25:30<span class="Apple-tab-span" style="white-space:pre"> </span>&nbsp; | &nbsp;&nbsp;2016-10-13T22:10:01 &nbsp;|</span></p> <p> <span style="font-size:12px;">4 &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre"> </span>| &nbsp; &nbsp;2016-10-13T01:09:11<span class="Apple-tab-span" style="white-space:pre"> </span>&nbsp; | &nbsp;&nbsp;2016-10-13T02:59:30<span class="Apple-tab-span" style="white-space:pre"> </span>&nbsp;|</span></p> <div> &nbsp;</div> </body> </html>

回答

3

您使用的語法是SQL server的。

MySQL的參見本 - https://dev.mysql.com/doc/refman/5.7/en/update.html

嘗試這種情況:

update statistic a 
join statistic b on a.id = (b.id - 1) 
set a.pause_time = TIMESTAMPDIFF(hour, a.start_datetime, b.end_datetime) 
+0

UPDATE統計量的JOIN統計B關於b.id =(a.id + 1) SET b.pause_time = TIMESTAMPDIFF (SECOND,a.end_datetime,b.start_datetime) – VAP

相關問題