我想以以下方式用total_playtime
(时间戳)和另一个值更新playtime
(时间戳)。
total_playtime = total_playtime + playtime
我使用了以下代码,
UPDATE `user_data` SET `total_playtime`=total_playtime+playtime WHERE id=1
但是此代码仅在
时有效,>>if second + second, works only when the result is no more than 1 minute.
for example
00:00:05 + 00:00:10 = 00:00:15 //WORKS
00:00:30 + 00:00:50 = 00:00:00 //DIDNT WORK , it should be 00:01:20
>>if minute + minute, works only when the result is no more than 1 hour
for example
00:05:00 + 00:10:00 = 00:15:00 //WORKS
00:30:00 + 00:50:00 = 00:00:00 //DIDNT WORK , it should be 01:20:00
也就是说,如果结果是从秒到分钟或从分钟到小时的转换,则结果为00:00:00。
我非常感谢您的帮助。谢谢。
答案 0 :(得分:0)
您的total_playtime
和playtime
的类型不应为timestamp
。
您应该使用decimal
或int
来记录秒数。
timestamp
表示一个时间点。您需要的是持续时间。 decimal
或int
有效,然后您可以(通过程序设置)持续时间的格式以向用户显示“ 00:02:30”。
如果您使用的是MySQL,则timestamp
根本无法使用。
TIMESTAMP数据类型用于包含日期和时间部分的值。 TIMESTAMP的UTC范围是'1970-01-01 00:00:01'到UTC的范围是'2038-01-19 03:14:07'。
ps:某些数据库提供time
类型,可用于存储您的播放时间,并且您可以使用addtime()
或total_time = time + interval xxx
来计算总时间。
答案 1 :(得分:0)
这将起作用:
SELECT ADDTIME('00:00:50', '00:00:15');
输出:
00:01:05
输入:
SELECT ADDTIME('00:50:00', '00:30:00');
输出:
01:20:00
对于两个时间戳,您需要执行以下操作:
SELECT ADDTIME(TIME('2008-05-15 13:20:32'),Time('0001-01-01 1:39:27'))