使用TIMEDIFF()的MySQL计算分钟数

使用TIMEDIFF()的MySQL计算分钟数,mysql,Mysql,我试图根据时间戳时间的差异来计算学生上课的总时间 这是我正在用的桌子 CREATE TABLE Students( studentID varchar(255), firstName varchar(255), lastName varchar(255), updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, total_time INTEGER DEFAULT NULL ); 上午9:39的学生记录更新为上午9:40。

我试图根据时间戳时间的差异来计算学生上课的总时间

这是我正在用的桌子

CREATE TABLE Students(
  studentID varchar(255), 
  firstName varchar(255), 
  lastName varchar(255), 
  updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
  total_time INTEGER DEFAULT NULL
);
上午9:39的学生记录更新为上午9:40。这里的dif是1分钟。。。所以学生的总课时加上1

我当前拥有的sql语句是

UPDATE Students SET total_time = TIMEDIFF(CURTIME(), updated_at); 
但是,如果我是正确的,TIMEDIFF将返回一个时间变量。。。我怎样才能把它转换成分钟?也。。。即使正确的浇铸时间为分钟,这是否有效?由于updated_at列使用的是“ON UPDATE”方法,我可以想象时间戳会被更新,然后计算出的差值总是0,因为两者是相同的

更新:必须指出,这些记录可能每分钟更新一次以上

试试这个查询 要获得分钟数,请使用以下命令:

UPDATE Students SET total_time = TIMEDIFF(NOW(), updated_at)/1;
更新学生设置总时间=TIMEDIFF(NOW(),更新时间)/60

要获得秒数,请使用以下命令:

UPDATE Students SET total_time = TIMEDIFF(NOW(), updated_at)/1;

检查mysql
timestampdiff
函数,你可以在分钟、小时、秒等方面获得差异@AbhikChakraborty这是一个非常好的主意。我不知道这个mysql函数。。。然而,它返回了一些非常大的数字。我将不得不回去检查我的执行情况。这几乎有效,但当记录每分钟更新一次以上时,它就不起作用了。。。因为这样它会将总时间设置回0。如果你想将它除以秒,你可以这样除以/1:updatestudents set total_time=TIMEDIFF(NOW(),updated_at)/1;