The second solution, '>= current day midnight, < current day + 1, again
midnight' doesn't actually solve anything since google app engine does not
allow that sort of query. I believe both will work on any other server,
it's just a gae issue.
On Friday, March 1, 2013 3:38:41 AM UTC-5, Niphlod wrote:
>
> don't know on GAE, but usually to match a date you can do either:
> 1. day = current day, month = current month, year = current year
> 2. >= current day midnight, < current day + 1, again midnight
>
> you tried the 1st, did you try the 2nd too ?
>
> On Friday, March 1, 2013 2:51:53 AM UTC+1, jjg0 wrote:
>>
>> Hi Everyone! I have another 'new guy' question, for those who have been
>> following me so far.
>>
>> I need to be able to look at two dates and determine if they match while
>> ignoring the time. Specifically, a date vs today
>> Lets say I have a model of appointments and in that model there is some
>> appointment date field, so in appointments table we have:
>>
>> Field('appointment_date', 'datetime'),
>>
>> and I want to grab today's appointments in a controller:
>>
>> appointments = db(db.appointments.appointment_date ==
>> request.now.date()).select(),
>>
>> This will be empty because none of the times will match. (Or maybe 1
>> will if I am extremely lucky to hit the db at that moment the time matches
>> but anyways..)
>>
>> So far I've found 2 solutions and both have problems:
>>
>> Solution 1. Format my Field so that it doesn't have
>> hours/minutes/seconds. Something like format=('%Y%m%d'), (I may have typed
>> that wrong). Now this works:
>>
>> db.appointments.appointment_date == request.now.date()
>>
>> The Problem: The SQLFORMs have this little calendar popup when entering
>> the date in, and this forces you to have the time stamp. This means any
>> SQLFORMs I have that let the user enter a date will always be broken if you
>> try to use the calendar.
>>
>> Solution 2: query using | (or) like so:
>>
>> query1 = db.appointments.appointment_date.year() == request.now.year
>> query2 = db.appointments.appointment_date.month() == request.now.month
>> query3 = db.appointments.appointment_date.day() == request.now.day
>>
>> appointments = db(query1 | query2 | query3).select()
>>
>> This works! It's actually what I went with, and everything was going
>> swimmingly! I didn't have to fiddle with ajax or whatever controls the
>> calendar in the SQLFORMs, although I realize I should get around to
>> learning how to do that at some point. So what's the problem?
>>
>> The Problem: Google app engine does not allow this:( Found this out the
>> hard way.
>>
>> So, are there easier ways to check if a datetime field is equal to today?
>>
>> Thanks for all the help so far.
>>
>>
>> EDIT: spelling
>>
>
--
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.