, 즉 나에게 몇 가지 문제를주고 있어요, 그것은 다음과 같습니다두 날짜의 기간을 계산하려면 어떻게해야합니까? 나는이 쿼리를
UPDATE servicecontracts
SET planned_duration = (to_char(due_date) - to_char(start_date) + 1)
,actual_duration =''
,progress = NULL
WHERE servicecontractsid = '263'
을 몇 가지 조사 후, 나는이 쿼리가 시도되고 있는지 파악하는 데 성공, 그것은 그냥 찾기 위해 노력 s의 기한 및 시작일을 차감하여 계획된 기간. 왜, 이것은 문자열을 빼서 그렇게하려고 시도하는 것입니다. 모르겠습니다. 또한 to_char
함수에는 두 번째 매개 변수가 필요합니다.
어쨌든, 이제 planned_duration
을 찾아야하지만 어떻게해야합니까? Postgresql 문서에 따르면 to_char
함수에는 정수를 반환하는 옵션이 없으며 텍스트를 반환하도록 설정 한 경우 명시적인 캐스트 (예 : ::integer
)를 사용하여 문자열을 정수로 변환하려고하면 오류가 발생합니다 왜냐하면 정수는 콜론을 가질 수 없기 때문입니다.
to_char
어떻게 든 날짜를 나타내는 정수를 반환하고 두 개를 뺄 수있는 방법이 있습니까? 그렇지 않다면 어떻게해야합니까?
하지만 int와 같은 간격으로 캐스팅 할 수는 없습니다. 내 게시물/매뉴얼을 참조하십시오. –
하하, 오, 저도 그게 간단하다는 것을 몰랐습니다. 고마워요. – zermy
@ErwinBrandstetter - 이유를 설명해 주시겠습니까? 방금'select ('2011-10-04':: date - '2011-08-04 :: date) :: int'을 올바르게 반환했습니다.'61' –