Here is a simple example ... but it seems to behave properly:

  """ test datetime in db queries """
  
  import sys
  sys.path.append("/mnt/data1/web2py")
  from gluon import *
  
  import datetime
  import random
  
  db = DAL('sqlite://debug_datetime.sqlite', 
folder='/home/goncalves/matlab/objrec/target_stacked_lanes', 
auto_import=True)
  
  db.define_table('magic',
      Field('DT', 'datetime'),
      Field('val', 'integer'))
  
  # Dec 12 2010, 12:30:45
  init_date = datetime.datetime(2010, 12, 10, 12, 30, 45)
  
  cur_date = init_date
  cur_val = 0
  for i in range(1000):
      db.magic.insert(DT = cur_date, val = cur_val)
      
      # we increment from 30 to 300 seconds at a time
      rand_int = random.randint(30, 300)
      delta = datetime.timedelta(0, rand_int)
      
      cur_date = cur_date + delta
      cur_val = cur_val + rand_int
      
  # make test date 24 hours later
  test_date = init_date + datetime.timedelta(1) 
      
  results = db( db.magic.DT < test_date).select( orderby=db.magic.DT )
  
  print 'Initial date:     ', init_date
  print 'Test date:        ', test_date
  print 'Last query result:', results[-1].DT
  print 'Next entry       :', db.magic[len(results)+1].dT

When run it produces:

Initial date:      2010-12-10 12:30:45
Test date:         2010-12-11 12:30:45
Last query result: 2010-12-11 12:29:55
Next entry in DB : 2010-12-11 12:33:45

So it behaves perfectly fine.  Something else is the problem in my 
application! Not sure what, though.

I'm running python 2.7 on my desktop, 2.6.5 on laptop, and have the problem 
on both.
Using webp2y version : Version 1.97.1 (2011-06-26 19:25:44)
I am the only person accesssing the DB.
The DB is 62MB.

Could it be that using a field name of 'dateTime'  is somehow confusing 
web2py?

Thanks,
Luis.

Reply via email to