2012-10-08 3 views
0

python Sybase 패키지를 사용하고 커서 fetch()를 수행하면 열 중 하나가 datetime입니다. 반환 된 시퀀스에이 값에 대한 DateTimeType 객체가 있습니다. sybasect 모듈에 있지만이 데이터 유형에 대한 문서를 찾을 수 없습니다. 문자열 출력으로 변환 할 수 있기를 원합니다. datetime 객체와 함께 strftime()을 사용하는 것과 비슷합니다.
이것에 대한 정보는?Python DateTimeType sybase

+0

당신은 그것을()는 DIR을 할 수입니다. –

답변

1

가장 좋은 방법은 egenix-mx-base 패키지를 설치하는 것입니다. 그러면 패키지에서 mxDateTime 모듈을 사용할 수있게되며 기본적으로 모든 datetime 열은 개체 (sybase 패키지 설명서에서 인용)으로 반환됩니다.

mxDateTime 설명서에서 확인할 수 있으므로 문자열 출력을 얻는 것은 간단합니다.

1

핵심 문제는 DateTimeType 개체와 datetime 개체의 월 수 지정 방법의 차이입니다.

이 문제를 해결할 수있는 약간의 기능을 작성했습니다. 이렇게하면 추가 모듈을 설치할 필요가 없으며 추가 DateTime 변환이 필요합니다. 코드에

모든 개선은 /는이 속성을 어떤 방법을 볼 오신 것을 환영합니다 :-)에게

def ps_datetime_converter(date_time_type_object): 
    # Convert from python-sybase DateTimeType format (months 0 to 11) to datetime type format 
    try: 
     dt_kwargs = {} 
     dt_kwargs['year'] = date_time_type_object.year 
     dt_kwargs['month'] = date_time_type_object.month + 1 
     dt_kwargs['day'] = date_time_type_object.day 
     dt_kwargs['hour'] = date_time_type_object.hour 
     dt_kwargs['minute'] = date_time_type_object.minute 
     dt_kwargs['second'] = date_time_type_object.second 
     dt_kwargs['microsecond'] = date_time_type_object.msecond 
     date_time_object = datetime(**dt_kwargs) 
     return date_time_object 
    except: 
     print "Conversion from DateTimeType object to datetime object failed."