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