2013-08-31 24 views
-2

我有這種有點複雜的查詢,在this question中有很好的解釋。我並沒有改變在查詢或與本系統中的任何東西,但我突然開始收到此錯誤MySQL確實意外的錯誤。 BIGINT超出範圍

BIGINT UNSIGNED值超出範圍 「(_dbadsimpressions_total - (投(( (CURDATE()) - 投(。_dbadsstart如日期))作爲無符號)* _dbadsimpressions_perday))」

我真的很困惑,我想的東西是不是C疼,但我能做什麼?我真的需要幫助..

+1

你需要做的就是去了解[MySQL的整數範圍]什麼(http://dev.mysql.com/doc/refman/5.0/en/integer-types.html)或做一些研究,而不是懶洋洋地在這裏發佈這個問題 – Bojangles

+0

@Bojangles但我沒有在任何地方使用bigint? –

+0

是的,你是。 'CAST(... AS無符號)' – JJJ

回答

1

這似乎是你的

(_db.ads.impressions_total - (cast(((curdate()) - cast(_db.ads.start as date)) as unsigned) * _db.ads.impressions_perday 

正確的方式來獲得兩個日期之間的區別是使用datediff()。所以我不知道這是否會解決您的問題:

_db.ads.impressions_total - datediff(curdate(), cast(_db.ads.start as date))*_db.ads.impressions_per_day 
+0

不僅解決了我的問題,而且我相信簡化了很多查詢! –