とdatatimeオブジェクトの問題私はSQLAlchemyのを使用していますが、SQLiteのエラーに発行WRT持っています:PythonはSQLAlchemyの
SQLite Date type only accepts Python date objects as input.
[SQL: 'SELECT anon_1.patient_sid AS sid FROM
(SELECT clinical_data.patient_sid AS patient_sid FROM clinical_data
WHERE clinical_data.event_date >= ?) AS anon_1']
を、私は完全に誤りの意味を理解し、それがで起こっている理由を私は理解していません私の場合。
私はclinical_data.event_date >= ?
上記のクエリの日付の比較を行うために渡していますパラメータは、のように設定されます。
valdate = datetime.strptime('1776-01-01 00:00:00', "%Y-%m-%d %H:%M:%S").date()
と、私はvaldate
のデータ型は<type 'datetime.date'>
であることを検証していクエリを構成するために使用されるクラスは、
class ClinicalData(db.Model):
__tablename__ = 'clinical_data'
id = Column(Integer, primary_key=True, autoincrement=True)
patient_id = Column(Integer)
patient_sid = Column(Integer)
string_value = Column(String(255))
double_value = Column(Float)
data_type_id = Column(Integer)
event_date = Column(Date)
ontology_id = Column(Integer)
attribute_id = Column(Integer)
project_id = Column(Integer)
replaced_by_id = Column(Integer)
date_record_added = Column(DateTime)
parent = Column(Integer)
num_children = Column(Integer)
lft = Column(Integer)
rgt = Column(Integer)
です。SQLiteの状態に関するSQLAlchemyのドキュメント(SQLAlchemy SQLite documentation) "SQLAlchemyの独自のDateTimeと関連する型は、SQliteを使用すると日付の書式設定と解析機能を提供します..."
私の文字列オブジェクトをpython datetimeオブジェクトに変換する方法は問いません。エラーを意味します。私は、すべてが十分に定義されているように見えるときにこのエラーが発生し続ける理由を正確にはわかりません。私はこのために、次のエラーSQLite DateTime type only accepts Python datetime and date objects as input.
を得るevent_date
属性に私のモデルでDateTime
を使用するときに、私はdate()
方法なしvaldate = datetime.strptime('1776-01-01 00:00:00', "%Y-%m-%d %H:%M:%S")
を定義することを
EDIT
注意を。予想通り、この場合のtype(valdate)
は<type 'datetime.datetime'>
となります。
valdate
変数を作成する際に、私のクラスのevent_date
属性を使用するすべての組み合わせを試しました。
私はこれを以前に試みていて、同じエラーが発生しました。また、上記のように、私は '型(valdate) 'を行い、' 'を返しました。私には確かに' datetime'オブジェクトのように見えます。私はまた、私のクラスのデータ型を悩ませました。私は太陽の下で事実上すべての組み合わせを試みました。 –
@horcle_buzz:あなたは私の答えの重要な部分を見逃したようです: 'datetime'と' date'は2つの異なるタイプです。 SQLAlchemyは 'date'を望んでいますが、' datetime'を与えています。 – jwodder
上記の修正/編集された質問を参照してください。 –