Hi Mike, Modifications of your test made to point to the actual database file I am using worked. The only difference in your test versus my code is that my ClinicalData class definition uses a Flask db.Model versus a straight declarative_base. I'll need to play around with this a bit more. Interesting.
Thanks! Greg-- On Thu, Nov 10, 2016 at 8:33 PM, mike bayer <mike...@zzzcomputing.com> wrote: > > > On 11/10/2016 08:10 PM, horcle_buzz wrote: > >> I am using SQLAlchemy and am having an issue wrt to an SQLite error: >> >> >> | >> SQLiteDatetype only accepts Pythondate objects asinput. >> [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'] >> | >> >> >> I understand perfectly the meaning of the error, but I do not understand >> why it is happening in my case. >> > > > nor do I. You'd need to provide a complete test. Here is one, modify it > to show how you get your error. > > > from sqlalchemy import * > from sqlalchemy.orm import * > from sqlalchemy.ext.declarative import declarative_base > from datetime import datetime > > Base = declarative_base() > > > class ClinicalData(Base): > __tablename__ = 'clinical_data' > id = Column(Integer, primary_key=True, autoincrement=True) > patient_id = Column(Integer) > event_date = Column(Date) > > e = create_engine("sqlite://", echo=True) > Base.metadata.create_all(e) > > > valdate = datetime.strptime('1776-01-01 00:00:00', "%Y-%m-%d > %H:%M:%S").date() > > s = Session(e) > s.add(ClinicalData(event_date=valdate)) > s.commit() > > > print s.query(ClinicalData).filter(ClinicalData.event_date >= > valdate).all() > > > > >> The parameter that I am passing to do the date comparison in the query >> above >> | >> clinical_data.event_date >=? >> | >> is set as: >> >> >> | >> valdate =datetime.strptime('1776-01-01 00:00:00',"%Y-%m-%d >> %H:%M:%S").date() >> | >> >> >> and, I have validated that the data type of `valdate` is `<type >> 'datetime.date'>` >> >> The class used to construct the query is: >> >> | >> classClinicalData(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) >> | >> >> >> The SQLAlchemy documentation for SQLite states (see [SQLAlchemy SQLite >> documentation][1] < >> http://docs.sqlalchemy.org/en/latest/dialects/sqlite.html>) that >> "SQLAlchemy’s own DateTime and related types provide date formatting and >> parsing functionality when SQlite is used..." >> >> Note that when I use `DateTime` as a data type in my class model on the >> `event_date` attribute I get the following error >> | >> SQLiteDateTimetype only accepts Pythondatetime anddate objects asinput. >> | >> >> For this I define >> | >> valdate =datetime.strptime('1776-01-01 00:00:00',"%Y-%m-%d %H:%M:%S") >> | >> >> without the `date()` method. As expected, `type(valdate)` in this case >> yields >> | >> <type'datetime.datetime'> >> | >> >> I have tried every combination of creating the variable `valdate` with >> the `event_date` attribute of my class. >> >> I am not asking how to convert my string object to a python datetime >> object, nor am I asking what the error means. I am not sure exactly why >> I keep getting this error when everything appears to be sufficiently >> defined. >> >> -- >> SQLAlchemy - >> The Python SQL Toolkit and Object Relational Mapper >> >> http://www.sqlalchemy.org/ >> >> To post example code, please provide an MCVE: Minimal, Complete, and >> Verifiable Example. See http://stackoverflow.com/help/mcve for a full >> description. >> --- >> You received this message because you are subscribed to the Google >> Groups "sqlalchemy" group. >> To unsubscribe from this group and stop receiving emails from it, send >> an email to sqlalchemy+unsubscr...@googlegroups.com >> <mailto:sqlalchemy+unsubscr...@googlegroups.com>. >> To post to this group, send email to sqlalchemy@googlegroups.com >> <mailto:sqlalchemy@googlegroups.com>. >> Visit this group at https://groups.google.com/group/sqlalchemy. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper > > http://www.sqlalchemy.org/ > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > --- You received this message because you are subscribed to a topic in the > Google Groups "sqlalchemy" group. > To unsubscribe from this topic, visit https://groups.google.com/d/to > pic/sqlalchemy/hJ12o7rGNp0/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > sqlalchemy+unsubscr...@googlegroups.com. > To post to this group, send email to sqlalchemy@googlegroups.com. > Visit this group at https://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. > -- Greg M. Silverman › flora-script <http://flora-script.grenzi.org/> ‹ › grenzi.org ‹ -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.