2012-12-17 5 views
1

몇 가지 문제가 있습니다. 파이썬을 사용합니다.파이썬에서 두 개의 다른 필드 날짜를 빼는 방법은 무엇입니까?

내가 몇 가지 오류가 나는 날짜를 뺄 일 VAR이

ads = fields.Date('Admission Date', help='Date of admission') 
dds = fields.Date('Discharge Date', help='Date of discharge') 

추천 VAR,

los=ads-dds 

을 가지고 있지만 :

unsupported operand type(s) for -: 'datetime.datetime' and 'datetime.date' 

무엇 내가해야 로스의 결과를 얻으려면 어떻게해야합니까?

+4

* 일부 문제가 있습니다. 파이썬을 사용합니다. *. 아니요, 파이썬을 사용하고 있습니다. 전혀 문제가 아닙니다! :-P –

+0

두 값은 모두 같은 시간이어야합니다. 따라서 날짜/시간을 날짜로 또는 그 반대로 변환해야합니다. –

+0

@ user1833746, "동일한 유형이어야 함"을 의미합니까? – jcfollower

답변

1

이러한 필드 중 하나는 date 개체이고 다른 하나는 datetime 개체입니다. 당신은 뺄셈을 mean으로 결정해야합니다.

당신은, 예를 들어, 일, 말, 자정의 고정 된 시간으로 datetime 객체로 date 객체를 돌 수 있었다 :

los = ads - datetime.datetime.combine(dds, datetime.time.min) 

datetime.datetime.combine()datetime 오브젝트를 새로운 datetime 객체를 생성 ; 우리는 자정을 나타내는 time 개체에 대한 쉬운 바로 가기로 datetime.time.min을 사용합니다.

또는, 당신은 단지 date 객체로 datetime 객체를 켠 다음 뺄 수하십시오 datetime 객체의

los = ads.date() - dds 

datetime.date() method 반환 단지 날짜 구성 요소입니다. 결과는 두 날짜 사이의 일 수를 나타내는 datetime.timedelta() 오브젝트입니다.

관련 문제