当我使用 python Sybase 包并执行游标 fetch() 时,其中一列是日期时间 - 在返回的序列中,它具有该值的 DateTimeType 对象。我可以在 sybasect 模块中找到它,但找不到此数据类型的任何文档。我希望能够将其转换为字符串输出 - 类似于将 strftime() 与 datetime 对象一起使用。
有这方面的信息吗?
问问题
1368 次
2 回答
1
您最好的选择是安装egenix-mx-base软件包。这将使mxDateTime模块可用于sybase
包,默认情况下,所有日期时间列将作为mxDateTime.DateTime
对象返回(引用自sybase
包文档)。
正如您将能够在mxDateTime文档中验证的那样,获取您的字符串输出将很容易。
于 2012-10-09T00:45:36.273 回答
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."
于 2015-08-03T15:49:25.330 回答