2010-12-21 135 views
1

我想查询我的数据库,了解在特定日期发布的所有记录(例如今天00:00到23:59:59之间)给定datetime.datetime时间戳如datetime.datetime (2010,12,21,17,59,43,85335)。使用Python日期时间计算时间窗口

什么是计算开始和结束datetime.datetime实例的最佳方法?我想用这样的事情结束了:

>>> timestamp = datetime.datetime(2010, 12, 21, 17, 59, 43, 85335) 
>>> # do something with timestamp to get start_date and end_date 
>>> start_date 
datetime.datetime(2010, 12, 21, 0, 0, 0, 0) 
>>> end_date 
datetime.datetime(2010, 12, 21, 23, 59, 59, 0) 

感谢,HC

+0

您的数据库是否提供将日期时间转换为日期的函数?然后你可以选择`DATE(column)='2010-12-21'` – eumiro 2010-12-21 18:21:40

回答

0

,如果只是计算了一天,那么你有什么是好的。只需使用一天,然后分别将时间分别设为0:00和23:59。

如果你想得到一个月的开始和结束时间,那么因为月份有不同的日子,情况会变得复杂得多。对于这样的事情,你可以使用这个模块

http://niemeyer.net/python-dateutil

2

啊,发现我想要的。我每次都在与日期时间斗争。

>>> timestamp = datetime.datetime.now() 
>>> timestamp 
datetime.datetime(2010, 12, 21, 18, 31, 37, 900795) 
>>> timestamp.replace(hour=0, minute=0, second=0, microsecond=0) 
datetime.datetime(2010, 12, 21, 0, 0) 
+0

+1:我其实从来不知道.replace()。 – 2010-12-21 16:39:49