2010-12-21 131 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