mysql查询错误

时间:2011-06-23 12:06:32

标签: mysql

select a.pdt_id, a.end_date - now() as seconds, 
  b.bid_price, c.uname, c.profile_img 
from tbl_products a 
  left join tbl_auction b on a.pdt_id=b.product_id 
  left join tbl_members c on  b.member_id=c.member_id 
where a.pdt_id=183

我已经在javascript的SetTimeOut()方法中调用此查询,每1秒钟一次 它将结果显示为

pdt_id    seconds       price    uname          profile_img            
183      107959.000000  0.10    xxxxxxx     images/profile/no_image.jpg

一切都是正确的,我的问题是,当秒变为183时,它不会显示输出的秒数:

pdt_id   price    uname          profile_img            
183      0.10   xxxxxxx     images/profile/no_image.jpg

该查询()中的错误是什么?如果有必要,我会提供表格详细信息......

2 个答案:

答案 0 :(得分:3)

你不能在这样的日期做数学

a.end_date - now() as seconds

那是你的错误。

这是另一种选择

UNIX_TIMESTAMP(e.end_date) - UNIX_TIMESTAMP() as seconds

unix_timestamp将日期表示为自1970年以来的秒数的整数,这是一个真实数字并且有效。

你的方法有时起作用的原因是因为NOW() - end_date有时是好的数学,但是日期'不是基数为10的数字,所以当你对它们这样处理时最终会得到一个棘手的结果。

答案 1 :(得分:0)

试试这个:

select ..., subdate(a.end_date, now()) as seconds,