Hi,

I am having trouble comparing two datetime objects. Using Sqlalchemy I save a 
string as a date into an sqlite field (which has no native date format, I 
gather). 

> import datetime as dt

> date_obj = dt.datetime.strptime(date_string,'%m.%d.%Y')

I want to compare that date later with an inputed date, which I created with 
strptime(). This function is only available for datetime.datetime.strptime() 
not datetime.date 

> >>> compare_date = dt.datetime.strptime('2011-01-27', '%Y-%m-%d')

> >>> print compare_date
> datetime.datetime(2012, 1, 27, 0, 0)

Despite the fact that I don't care about the time fields, they still get added. 
It appears that I can get at the date object returned in an sqlalchemy object:

> >>> for row in query_object:
> ...         type(row.date)
> ... 
> 2012-03-16 19:18:18,420 INFO sqlalchemy.engine.base.Engine SELECT posts.date 
> AS posts_date 
> FROM posts
> 2012-03-16 19:18:18,420 INFO sqlalchemy.engine.base.Engine ()
> <type 'datetime.date'>
> <type 'datetime.date'>
> <type 'datetime.date'>


But when I compare them, it always returns false because datetime.date does not 
seem to compare to datetime.datetime...

> >>> for row in q1:
> ...     print type (row.date), row.date, ' vs ', type(compare_date), 
> compare_date, row.date == compare_date
> ... 
> 2012-03-16 19:33:56,011 INFO sqlalchemy.engine.base.Engine SELECT posts.date 
> AS posts_date 
> FROM posts
> 2012-03-16 19:33:56,011 INFO sqlalchemy.engine.base.Engine ()
> <type 'datetime.date'> 2011-11-05  vs  <type 'datetime.datetime'> 2012-01-27 
> 00:00:00 False
> <type 'datetime.date'> 2011-11-29  vs  <type 'datetime.datetime'> 2012-01-27 
> 00:00:00 False
> <type 'datetime.date'> 2011-12-23  vs  <type 'datetime.datetime'> 2012-01-27 
> 00:00:00 False
> <type 'datetime.date'> 2012-01-18  vs  <type 'datetime.datetime'> 2012-01-27 
> 00:00:00 False
> <type 'datetime.date'> 2012-01-17  vs  <type 'datetime.datetime'> 2012-01-27 
> 00:00:00 False
> <type 'datetime.date'> 2012-01-27  vs  <type 'datetime.datetime'> 2012-01-27 
> 00:00:00 False
> <type 'datetime.date'> 2012-01-14  vs  <type 'datetime.datetime'> 2012-01-27 
> 00:00:00 False

Can  anyone help me out here? Thanks in advance.

PS: I'm asking here since I think this is a simple object comparison question, 
not a question specific to a library (sqlalchemy).  If it matters, I'm playing 
around with a small web log application built on Werkzeug, Sqlalchemy, and 
Jinja2. I'm actually very impressed with the progress I've made.

Luke Mergner
Mechanicsville, MD
lmerg...@gmail.com
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to