Program Club

datetime.datetime을 datetime.date와 비교할 수 없습니다.

proclub 2021. 1. 7. 08:17
반응형

datetime.datetime을 datetime.date와 비교할 수 없습니다.


다음 코드가 있고 위의 오류가 발생합니다. 파이썬을 처음 접했기 때문에 여기 구문을 이해하는 데 문제가 있으며 오류를 수정하는 방법이 있습니다.

if not start or date < start: start = date

datetime.date()datetime에서 날짜로 변환 하는 방법이 있습니다.

반대 변환을 수행하려면이 함수를 사용할 수 있습니다. datetime.datetime(d.year, d.month, d.day)


당신은 사용할 수 있습니다 datetime.datetime.combine다음, 날짜 객체에 날짜 개체를 비교 다른 날짜 객체로 변환 된 개체를 비교하는 방법을.

import datetime

dt1 = datetime.datetime(2011, 03, 03, 11, 12)
day = datetime.date(2011, 03, 02)
dt2 = datetime.datetime.combine(day, datetime.time(0, 0))

print dt1 > dt2

시작이 datetime이라고 가정하면 다음과 같이 사용하십시오.

if not start or date < start.date(): start = date

나는 날짜로 변환 날짜에 필요가 있다고 생각하지 않습니다 그냥 반대를하고 비교할 수있는 파이썬은.

또는 변환 할 날짜와 00:00 시간을 사용하여 새 datetime을 만드는 다른 방법이 있습니다.


귀하의 변수 시작 및 날짜는 내가 생각하는 다른 유형입니다. 하나는 datetime이고 다른 하나는 날짜입니다. 적절한 도움을 받으려면 더 많은 코드를 표시해야 할 수도 있습니다.

그러나 이것을보십시오 : http://docs.python.org/library/datetime.html#available-types

datetime.datetime에는 datetime.date와 같이 일, 월 및 연도와 같은 속성이 있음을 알려줍니다.


이 문제는 날짜 필드 ( DateField)와 날짜 시간 필드 ( DateTimeField) 를 비교하려고 할 때 발생합니다 .

해결책은 모델에서 필드를 정의한 위치를 확인하고 유형이 균일한지 확인하는 것입니다.

나는 당신이 제안 을 모두 교체 DateField와 함께DateTimeField .


pandas그러나을 사용하는 동안 위의 오류가 발생했습니다 . 왜냐하면 date_column은 잘못된 형식을 지정하고 있다는 사실을 깨닫지 못하고 많은 시간을 낭비한 문자열 이기 때문 입니다.

# didnt work
df[(df.date_column > parse_datestr('2018-01-01'))]

# works
df['date_column'] = pd.to_datetime(df['date_column'])
df[(df.date_column > '2018-01-01') & (df.date_column < '2018-02-28')]

참조 URL : https://stackoverflow.com/questions/7239315/cant-compare-datetime-datetime-to-datetime-date

반응형