2017-11-07 1 views
0

이것은 이상한 것이고 1292 경고를 다루는 여러 게시물을 찾았지만 아무 것도 내 시나리오에 맞지 않는 것 같습니다.파이썬을 통해 MySQL을 읽을 때 때때로 경고 1292가 발생하며 60 초로 초를 해석합니다.

설정 : 파이썬 3.5 PyMySQL == 0.7.11 의 MySQL 5.5.53

검색어 :

Executing sql: SELECT PacketID, `Type`, `Length`, Raw_Data 
        FROM extra_packets 
        WHERE `Time` > NOW() - 10 AND PacketId > '18345' ORDER BY `Time` DESC; 

결과 :

python3.5/site-packages/pymysql/cursors.py:323: Warning: (1292, "Incorrect datetime value: '20171107190398' for column 'Time' at row 1") 

샘플 데이터 :

PacketID Time    Type Length Raw_Data 

18,346  2017-11-07 19:04:06 76 22 ....... 
18,345  2017-11-07 19:04:01 76 22 ....... 
18,344  2017-11-07 19:03:57 76 22 ....... 

주 : 경고 메시지에서

  • 는 초 값은 60보다 큰 경우 -이 문제 가정?
  • 이것은 항상 발생하는 것은 아니며, 아마도 시간과 관련이 있습니다.
  • 실제로 응답을 위해 Time을 사용하고 있지 않습니다.

질문 : (분명히) 어떻게이 경고를 해결합니까?

답변

1

10 대신 적절한 INTERVAL 표현을 사용하십시오.

WHERE Time > DATE_SUB(NOW(), INTERVAL 10 SECOND) 

코드는 20171107190408 같은 정수 NOW() 변환하고 것과 10 감산된다. 현재 시간의 초가 10 미만일 때 오류가 발생합니다.

+0

감사합니다. – SteveJ

관련 문제