by default, the sqlite driver will return everything as a string, regardless of what the real type of the field is -- because sqlite actually stores everything as a string (as the original poster describes here https://groups.google.com/d/msg/web2py/5ABy8XH4ujU/6xtq0xQB8nEJ ; ).
I can't find my test case from February that made me start this thread: https://groups.google.com/d/topic/web2py/1N0TwMOgp3o/discussion , and other changes to DAL since then may have fixed all the paths - I was occasionally getting strings out of the database rather than datetimes() as I expected. This flag to sqlite makes it return date() and datetime() objects if the field type is "date" or "timestamp", instead of strings, like a database driver is expected to do. I will have time tomorrow to look at my source control and perhaps find an example.