2012-04-10 3 views
3

데이터가 datetime 인 SQL Server 테이블이 있습니다. pymssql과 함께 Python 스크립트를 사용하여 데이터베이스에 연결하고 쿼리를 실행합니다.Python 및 SQL Server : datetime 데이터 관련 문제

내가 가지고있는 문제는 내 쿼리가 datetime 데이터를 반환 할 때 날짜가 이동되어 더 이상 정확하지 않다는 것입니다. 예를 들어, 내 테이블의 한 데이터 항목은 '2012-03-27'날짜이지만, 검색하여 파이썬에서 datetime 개체로 저장하면 날짜는 '2012-01-03 '.

해결 방법에 대한 의견이 있으십니까? pytz과 같은 라이브러리를 사용해야합니까?

감사합니다.

+0

이것은 매우 이상하게 보입니다. 3 월 27 일과 3 월 1 일을 '변환'하는 것이 시간대 문제 일 수는 없습니다. 멀리 볼 수는 없습니다. 관련 코드 섹션을 어디에서 가져 와서 저장할 수 있습니까? –

+0

당신은 분명히 잘못된 데이터를보고 있습니다. 코드를 제공하십시오. – WeaselFox

+0

내 머리에서 뭔가가 일어나지 않는 한 (종종 그렇긴하지만!) 이런 일은 일어나지 않아야합니다. 그러나 일이 일어난다. 코드를 철저히 검사 했습니까? –

답변

0

나는 아직도이 문제의 원인이 무엇인지 잘 모르겠지만, 나는 해결책을 발견 : 쿼리가 수행 될 때 varchar를 입력합니다 datetime 데이터를 변환 :

select convert(varchar(20),event_time,120) from event_detail; 

은 이전에 내가이 쿼리를 수행되었다 :

select event_time from event_detail; 

event_time 유형의 나는 페이지와 같은 문제가 발생하고 datetime

1

입니다 ymssql 버전 1.02. 아니 가장 깨끗한 aproach, 나는 OP에 의해 제안 된 해결 방법을 사용하고 dateutil.parser 모듈을 사용하여 올바른 값으로 파이썬 datetime 개체 문자열 값을 변환합니다. iso_datetime_string에 datetime 형식의 문자열이 ISO 형식으로 포함되어 있으면 해결 방법에서 반환 된 코드가 다음과 같습니다.

import dateutil.parser as ps 

correct_datetime_obj = ps.parse(iso_datetime_string)