On Wed, Aug 06, 2008 at 01:05:02PM +0200, Petr Jake?? wrote:
> in my tables I am using timestamp field.
> I would like to select all records from the table that have the same date
> (not the same timestamp!!), say all records with the date 31.12.2007. What
> is the best way to do it in the SQLObject?
Using 'date()' function in SQL (not in SQLObject):
from sqlobject import *
from sqlobject.sqlbuilder import *
__connection__ = "sqlite:/:memory:?debug=1"
from datetime import datetime
class Test(SQLObject):
ts = DateTimeCol()
Test.createTable()
Test(ts=datetime.strptime('2008-08-01 21:44:33', '%Y-%m-%d %H:%M:%S'))
print list(Test.select(func.date(Test.q.ts) == '2008-08-01'))
2/QueryIns: INSERT INTO test (ts) VALUES ('2008-08-01 21:44:33')
2/QueryR : INSERT INTO test (ts) VALUES ('2008-08-01 21:44:33')
3/QueryOne: SELECT ts FROM test WHERE ((test.id) = (1))
3/QueryR : SELECT ts FROM test WHERE ((test.id) = (1))
4/Select : SELECT test.id, test.ts FROM test WHERE ((date(test.ts)) =
('2008-08-01'))
4/QueryR : SELECT test.id, test.ts FROM test WHERE ((date(test.ts)) =
('2008-08-01'))
[<Test 1 ts='datetime.datetime...)'>]
'func' is SQLBuilder's magic that passes its attribute to SQL unchanged.
Note 'date(test.ts)'! You should check that your backend actually
implements the function (for 'date' most do).
Oleg.
--
Oleg Broytmann http://phd.pp.ru/ [EMAIL PROTECTED]
Programmers don't die, they just GOSUB without RETURN.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
sqlobject-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss