2012-04-27 48 views
1

假设我有一个这样的表:MySQL的:操作与TIME数据类型

create table reserved (
    id int(4) primary key, 
    name varchar(30), 
    quantity int(4), 
    price int(8), 
    info varchar(50), 
    expiration_time time, 
    contract_id varchar(50) 
); 

而我在其中插入几行,使用格式为“HH:MM:SS”为EXPIRATION_TIME领域。 现在我要更新这个领域,加入50秒时:

update reserved set expiration_date=expiration_date+50 where id=1 

当我有HH:MM不到10秒的SS,一切工作正常。但是在一段时间内:01:10:40,增加50秒会导致01:11:00。我能做些什么来解决这个问题?谢谢

回答

1

使用ADDTIME()连同MAKETIME()

UPDATE reserved 
SET expiration_date=ADDTIME(expiration_date,MAKETIME(0,0,50)) 
WHERE id=1; 
+0

我怎么会计算如果时间是另一个时间后?是“>”运营商好吗? – Madrugada 2012-04-27 16:47:38

+0

@Madrugada:你为什么不试试看? ;) – eggyal 2012-04-27 16:50:06