[英]TypeError: can't compare datetime.datetime to datetime.time
[英]combining datetime.datetime with datetime.time - TypeError: an integer is required
我目前正在嘗試迭代SQL請求游標中包含的一些數據,將某些數據的類型更改為“datetime.time”,然后將其與另一個變量組合成一個名為“datetime_db”的新變量。
我有兩個名為“date”和“nextDay”的變量,這些變量之前已在我的代碼中定義過。 前面提到的“datetime.time”將與“date”或“nextDay”組合,具體取決於某些條件。
我的代碼如下:
for (date_db,time_db,price) in cursor:
time_db = datetime.datetime.strptime(time_db,"%H:%M:%S").time()
price = float(price)
if (date_db == date):
datetime_db = datetime.datetime.combine(datetime.date(date), datetime.time(time_db))
else:
datetime_db = datetime.datetime.combine(datetime.date(nextDay), datetime.time(time_db))
這會引發以下錯誤:
File "C:/Users/Stuart/PycharmProjects/untitled/Apache - Copy.py", line 82, in <module>
datetime_db = datetime.datetime.combine(datetime.date(date), datetime.time(time_db))
TypeError: an integer is required
當我為所涉及的3個變量打印出“type()”時,我得到以下內容:
time_db = <type 'datetime.time'> date = <type 'datetime.datetime'> nextDay = <type 'datetime.datetime'>
有什么明顯的原因導致這種情況無效嗎? 我嘗試將“date”和“nextDay”的類型更改為“datetime.date”,但這沒有任何區別。
有人可以建議我如何成功地將這兩個變量結合起來嗎?
您無法通過構造函數將datetime
date
轉換為datetime
:
>>> datetime.date(datetime.datetime.now())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: an integer is required
datetime.time
構造函數也是如此; 它不會接受另一個time
對象作為參數。
現在,你需要有一個date
和time
來使用datetime.combine
; time_db
已經是類time
的實例,但是你的date
(這個解釋的不幸名稱)是datetime
類型。 那么, date
部分date
可以用datetime.date
方法提取:
>>> dt = datetime.datetime.now()
>>> dt
datetime.datetime(2015, 2, 20, 22, 21, 22, 806109)
>>> dt.date()
datetime.date(2015, 2, 20)
因此你可以這樣做:
datetime.datetime.combine(date.date(), time_db)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.