I should probably add that I'm curious if this is the desired
behavior. From my (relatively inexperienced) point of view it seems
that sqlalchemy should try to return whatever the programmer is
expecting as designated by the column type.

- Justin

On Dec 18, 2:03 pm, Justin <[EMAIL PROTECTED]> wrote:
> Sorry,
>
> Database is sqlite. From my understanding sqlite would store the value
> as a string.
>
> From running the following test it seems that the orignal type of
> value stored (datetime vs date) is being maintained in sqlite
> regardless of the Column type:
>
> import datetime
>
> from sqlalchemy import *
> from sqlalchemy.orm import *
>
> engine = create_engine('sqlite://', echo=False)
>
> Session = sessionmaker(bind=engine, autoflush=True,
> transactional=True)
>
> meta = MetaData()
>
> test_table = Table('test', meta,
>     Column('id', Integer, primary_key=True),
>     Column('name', String),
>     Column('date', Date))
>
> class Test(object):
>     def __init__(self, name, date):
>         self.name = name
>         self.date = date
>     def __repr__(self):
>         return "<%s: %s>" % (self.name, self.date)
>
> mapper(Test, test_table)
>
> if __name__ == '__main__':
>
>     t1 = Test('date', datetime.date(2007, 12, 18))
>     t2 = Test('datetime', datetime.datetime(2007, 12, 18))
>     t3 = Test('control', datetime.date(2007, 1, 1))
>
>     meta.create_all(engine)
>
>     sess = Session()
>     sess.save(t1)
>     sess.save(t2)
>     sess.save(t3)
>
>     sess.flush()
>     sess.clear()
>
>     print 'All:'
>     print sess.query(Test).all()
>     print 'Datetime:'
>     print sess.query(Test).filter_by(date=datetime.datetime(2007, 12,
> 18)).all()
>     print 'Date:'
>     print sess.query(Test).filter_by(date=datetime.date(2007, 12,
> 18)).all()
>
> Result:
>
> All:
> [<date: 2007-12-18>, <datetime: 2007-12-18>, <control: 2007-01-01>]
> Datetime:
> [<datetime: 2007-12-18>]
> Date:
> [<date: 2007-12-18>]
>
> Thanks,
>
> - Justin
>
> On Dec 18, 1:19 pm, Michael Bayer <[EMAIL PROTECTED]> wrote:
>
> > not sure, it depends on what kind of database youre using (and what
> > DBAPI) as well as the actual type of column is is on the database
> > side.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to