2012-02-07 17 views
2

のPythonでコーディング、私はこのようなデータベース側で処理時間挿入する:Python + sqlalchemy:データベース側でtimedeltaを処理する方法は?

time = func.now()-datetime.timedelta(days=100) 

または

time = func.current_timestamp()-datetime.timedelta(days=100) 

を何とかそれは警告を見て、を介して取得できませんでした:

sqlalchemy\engine\default.py:330: Warning: Truncated incorrect DOUBLE value: '1970-01-04 00:00:00' 

これをまっすぐに得る方法はありますか?ありがとう。私はTIMESTAMPの列 'date_buy' を更新したい

================================

テーブル 'Purchase'では、datetime.datetime.now()を使用してpythonで更新時間を取得するのではなく、データベースでこれを実行したいので、func.now()を好むでしょう:

===============

解決済み。ブライアンと彼のポストのおかげ: http://groups.google.com/group/sqlalchemy/browse_thread/thread/a67d4f179e01b98a/ee688a0b8a999f52?hl=en&lnk=gst&q=date_add#ee688a0b8a999f52

+0

解決策が見つかった場合は、答えを受け入れて質問を閉じます。システムのワークフローを完了するには、これを実行してください。 – Nilesh

答えて

1

警告

Warning: Truncated incorrect DOUBLE value: '1970-01-04 00:00:00'

では、その切り捨てあなたのデータを意味します。時間オブジェクトを保存するフィールドのタイプを確認してください。 これは、あなたがdatetime値でDOUBLE値を格納しようとしていると言います。

これはほんの一部のコード例を与え、問題を解決することはできませんので、もし私たちは、あなたがやろうとしているもののアイデアを得るでしょう。

+1

plsは編集した投稿を見ます。これは、MySQLへのその場でのpythonを操作しないままにする正しい方法であれば、私はわかりません。ありがとう! – avemax

+0

date_buyの種類は何ですか?購入クラスを提供してください。 – Nilesh

+0

CURRENTTIMESTAMPはdouble値であり、あなたがCURRENTTIMESTAMPからマイナス日時にしようとしています。同じタイプのオペランドを使用して操作を実行するだけです。 ( - datetime.timedelta(日= 100)func.now()) ''あなたはconverttimestampを使用することができます – Nilesh

関連する問題