0

Python Sybase パッケージを使用してカーソル fetch() を実行すると、列の 1 つが日時です。返されるシーケンスでは、この値の DateTimeType オブジェクトがあります。sybasect モジュールにあることはわかりますが、このデータ型に関するドキュメントは見つかりません。それを文字列出力に変換できるようにしたいと思います-日時オブジェクトで strftime() を使用するのと同様です。
これに関する情報はありますか?

4

2 に答える 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 に答える