0
我有一个DATETIME列的历史表。是否可以在DATEDIFF函数中分配变量?下面的语句:函数内的mysql赋值
SET @LASTDATETIME='2000-01-01 00:00:00';
SELECT DATETIME, @LASTDATETIME, TIMEDIFF(DATETIME, @LASTDATETIME:=DATETIME) AS CALC, @LASTDATETIME FROM HISTORY
导致这样的结果:
|DATETIME |@LASTDATETIME | CALC | @LASTDATETIME
-------------------------------------------------------------------
2013-01-28 12:11:41 |2000-01-01 00:00:00 |00:00:00 |[BLOB - 19 B]
2013-01-28 12:11:44 |2013-01-28 12:11:41 |00:00:00 |[BLOB - 19 B]
我不明白为什么它似乎分配排序为DATETIME工作被结转到下一个记录,但CALC场失败了,在赋值之后@LASTDATETIME的值是一个BLOB?为什么不按我所期望的那样工作?
感谢您的帮助。
工程。我实际上想要做的是根据DATEDIFF更新表格,所以据我所知,我需要在函数中更改@last。我试图更新一个名为tripid的列,如果时间戳超过最后一个记录中的时间戳超过10分钟,则为tripid增量,否则该记录被视为同一旅程的一部分。这里是一个小提琴:[sqlfiddle](http://sqlfiddle.com/#!2/35918/1/0)(希望这有效,对不起,新手) – user2053292 2013-02-14 00:01:59