Python Sybase パッケージを使用してカーソル fetch() を実行すると、列の 1 つが日時です。返されるシーケンスでは、この値の DateTimeType オブジェクトがあります。sybasect モジュールにあることはわかりますが、このデータ型に関するドキュメントは見つかりません。それを文字列出力に変換できるようにしたいと思います-日時オブジェクトで strftime() を使用するのと同様です。
これに関する情報はありますか?
質問する
1368 次
2 に答える
1
最良のオプションは、egenix-mx-baseパッケージをインストールすることです。これにより、mxDateTimeモジュールがsybase
パッケージで使用できるようになり、デフォルトですべての datetime 列が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 に答える