I should add: The specific queries I was running that were throwing the error all worked using your test case setup.
Greg-- On Fri, Nov 11, 2016 at 10:50 AM, Greg M. Silverman <g...@grenzi.org> wrote: > 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 ‹ > -- 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.