2017-12-20 8 views
0

Sybaseデータベースに複数のvarcharおよびdatetimeフィールドがあるテーブルServerHistoryがあり、pyodbcライブラリを使用してPythonコードベースからデータベースに接続しています。datetime列にnullを取得できないPython

テーブルではNULL datetimeが許され、updDateがnullのレコードがいくつかありますが、Pythonからこのようなレコードを読み込むためにsqlを実行すると、updDateフィールドにnullが返されることはありません。

代わりに、以前の日時フィールドの値を取得し、それをupdDateとして設定します。私がちょうどupdDateを選択した場合、ValueErrorは "year 0/any no。は範囲外です"と表示されます。 。

接続= pyodbc.connect( 'connection_str') 結果= connection.execute( "ServerHistoryサーバー= \ 'SRVR1の\' からupdDateを選択する")fetchone()

とValueError:年間31728が出ています範囲の

は、私はPythonがそれでもsqlalchemy can't read null dates from sqlite3 (0000-00-00): ValueError: year is out of range

あたりとして1の分年以下の時間を許可していないため、エラーが多分起こっ信じて、私はまだ日時ときのようにnullを得るために、私の問題を解決する方法を理解していません私はクエリを実行します。

+1

あなたが試したこと(コード)を教えてください。 SOに関する質問をする方法についてのヘルプページを読んでください。 – Yannis

+0

pyodbc [Output Converter関数](https://github.com/mkleehammer/pyodbc/wiki/Using-an-Output-Converter-function)を使用して生のバイトをキャプチャし、バイトPythonの 'datetime'が処理できない日時に対応しています。 –

答えて

1

ハックっぽい:

使用coalesce(updDate , date('0001/01/01')あなたはpyodbcから収集したデータを使用するときselect updDate, .. from ...とは、そのようなupdDateNoneとして扱います。

関連する問題