我正在尝试根据时间戳时间的差异来计算学生在课堂上的总时间。
这是我正在使用的表格......
CREATE TABLE Students(
studentID varchar(255),
firstName varchar(255),
lastName varchar(255),
updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
total_time INTEGER DEFAULT NULL
);
ex。)上午9:39的学生记录更新到上午9:40。这里的差异是1分钟...所以1加到学生的total_time。
我目前拥有的sql语句是......
UPDATE Students SET total_time = TIMEDIFF(CURTIME(), updated_at);
但是,如果我是正确的话,TIMEDIFF会返回一个时间变量...如何将其变为分钟?也是......即使正确的铸造到分钟,这还能工作吗?由于用于updated_at列的“ON UPDATE”方法,我认为时间戳只是更新,然后计算的差异将始终为0,因为两者将是相同的。
更新:至关重要的是,提及这些记录可能会每分钟更新一次。
答案 0 :(得分:1)
尝试此查询 得到分钟使用这个:
更新学生SET total_time = TIMEDIFF(NOW(),updated_at)/ 60;
获得秒数:
UPDATE Students SET total_time = TIMEDIFF(NOW(), updated_at)/1;