Python DateTimeType sybase

时间:2012-10-08 21:57:38

标签: python database

当我使用python Sybase软件包并执行游标fetch()时,其中一列是日期时间 - 在返回的序列中,它具有该值的DateTimeType对象。 我可以发现它在sybasect模块中,但找不到此数据类型的任何文档。 我希望能够将它转换为字符串输出 - 类似于使用带有datetime对象的strftime() 关于这个的任何信息?

2 个答案:

答案 0 :(得分:1)

您最好的选择是安装egenix-mx-base包。这将使mxDateTime模块可用于sybase包,默认情况下所有日期时间列将作为mxDateTime.DateTime个对象返回(引自{{1}包文档)。

由于您可以在mxDateTime文档中进行验证,因此获取字符串输出将非常简单。

答案 1 :(得分: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."