2013-08-31 4 views
-2

중 BIGINT 내가 잘 this question에 설명이 좀 복잡한 쿼리가 있습니다. 나는 ('그러나 갑자기 에MySQL은 실제로 예기치 않은 오류가 발생했습니다. 범위

BIGINT UNSIGNED 값이 범위를 벗어이 오류를 받기 시작, 쿼리 또는이 시스템에 관한 아무것도 아무것도 변경하지 않은 _dbadsimpressions_total -.. (캐스트 (((CURDATE()) -.. 부호로 캐스트 (.. _dbads 날짜로 start))) * _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

이뿐만 아니라 내 문제를 해결 않은 오류가 발생하지만, 나는 좋은 많은 쿼리를 단순화 믿는다 ! –

관련 문제