반응형
값이 NULL인 DATTIME에서 결과를 가져올 때 python mariadb 커넥터 오류
음, 제 생각엔 mariadb 연결기가 뭔가 이상한 것 같은데요...
다음과 같은 테이블 행이 있습니다.
이드 | 표제목 | 카테고리 | 날짜_ | 날짜_기한 | 내용을 | 파일 | user_id |
---|---|---|---|---|---|---|---|
6 | 테스트7 | 10 | 2021-04-01 21:50:21 | 내용 7 | 빨대f9cdaf.txt | 16 |
문제는 DATTIME 필드가 NULL(내 앱에서 date_due date는 필수 사항이 아님)이라는 것입니다.
execute() 메서드에 값을 전달한 후 fetchall() 메서드가 반환된 데이터를 다르게 구문 분석하는 것 같습니다.
첫 번째 경우가 잘 작동합니다. 두 번째 경우 "ValueError: year 0이 범위를 벗어남"을 반환합니다.
id=("6",)
statement1 = "select * from posts where id = 6"
statement2 = "select * from posts where id = ?"
db.cursor.execute(statement1)
result = db.cursor.fetchall()
for x in result:
print(x)
db.cursor.execute(statement2, id)
result = db.cursor.fetchall()
for x in result:
print(x)
커넥터를 나열하려고 했습니다. - 결과가 같습니다.
값 및 테이블 열 속성을 변경하려고 했습니다. - 결과는 같습니다.
버전에 문제가 있다고 생각하여 최신 파이썬, mariadb 서버 및 파이썬 커넥터(우분투 20.04에서)로 업데이트했습니다. - 동일한 결과
결과:
6, 'test 7', 10, datetime.datetime(2021, 4, 1, 21, 50, 21), None, 'content 7', 'strawsf9cdaf.txt', 16)
ValueError: year 0 is out of range
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/project dir/main_test3.py", line 38, in <module>
result = db.cursor.fetchall()
SystemError: <method 'fetchall' of 'mariadb.connection.cursor' objects> returned a result with an error set
Process finished with exit code 1
어떤 도움이라도 주시면 대단히 감사하겠습니다.
MariaDB Connector/Python에 버그가 있었는데 최근에 스스로 고쳤습니다.수정은 다음 버전(1.0.7)에서 사용할 수 있습니다.
날짜 "0000-00-00"은 Python에서 유효하지 않으므로 대신 None으로 변환해야 합니다.
보고해 주셔서 감사합니다.
언급URL : https://stackoverflow.com/questions/66963588/python-mariadb-connector-error-when-fetching-results-from-a-datetime-with-value
반응형
'programing' 카테고리의 다른 글
jQuery에서 html 요소를 만드는 가장 명확한 방법 (0) | 2023.10.09 |
---|---|
C# 문자열의 여러 문자 바꾸기 (0) | 2023.10.09 |
With Embedded YouTube Video, Create Link that Jumps to Specific Time (0) | 2023.10.09 |
jQuery의 CSS 클래스 변경에 대한 이벤트 실행 중 (0) | 2023.10.09 |
php.ini 파일을 변경한 후 Apache를 다시 시작해야 합니까? (0) | 2023.10.09 |