2013-02-14 14 views
0

L.LoanDueDate (smalldatetime)과 ufnARCUGetLatestProcessDate() (int)의 반환 값을 비교하여 대출 마감일이 지난 프로세스 날짜를 지난 날짜를 확인하려고합니다. int를 SmallDateTime으로 내림차순

나는 그것을 알아낼 수없는 것 smalldatetime으로

오류 및 데이터 형식으로 표현을 변환하는

산술 오버플로 오류가 발생합니다. 어떤 도움이 유용 할 것입니다. 미리 감사드립니다.

CAST(L.LoanDueDate - CAST(CAST((SELECT ProcessDate FROM ufnARCUGetLatestProcessDate()) AS VARCHAR(10)) AS smalldatetime) AS INT) 
+0

나는 또한 다음을 사용하려고 시도했다. CAST (L.LoanDueDate-CONVERT (smalldatetime, convert (char (8), (SELECT ProcessDate FROM ufnARCUGetLatestProcessDate()))) INT) – JoBaxter

답변

0

문제를 파악할 수있었습니다. DATEDIFF에 대한 DigCamare의 의견은 int를 smalldatetime으로 캐스팅하여 비교할 수 있다고해도 그것이해야 할 일임을 상기 시켰습니다.

DATEDIFF(d,L.LoanDueDate,CONVERT(smalldatetime,convert(varchar(10),(SELECT ProcessDate FROM ufnARCUGetLatestProcessDate())))) 
0

int를 smalldatetime으로 비교할 수 없습니다. 두 개의 날짜를 비교해야하고 datediff을 사용해야합니다.

0

날짜 열을 int로 변환 할 수 있습니다. 시간 부분이없는 aproximate (rounded) 날짜를 int로 제공합니다.

편집 : 당신은 비교를 위해이 숫자로 당신에게 일을 줄 것이다

:

SELECT FLOOR(CAST(L.LoanDueDate as float)) - 
(SELECT ProcessDate FROM ufnARCUGetLatestProcessDate()) AS myValue 
FROM ... 

키는 날짜 수와하지에 수를 날짜를 캐스팅하는 것입니다.

+0

그 이유는 내가 그것을 첫 번째 char 값으로 캐스팅하려고합니다. 그것을 통해서. 내가 필요한 건 데이트 야. 시간 없어. – JoBaxter

+0

제 편집을보세요. – rcdmk

0

다음을 추가하기 만하면됩니다. 이것은 smalldatetime 변환에 간단한 int를 사용하기 위해 사용하고있는 것입니다. 다른 사람들을 돕기를 바랍니다.

(SELECT CAST(CAST(ProcessDate AS VARCHAR(10)) AS SMALLDATETIME) FROM ufnARCUGetLatestProcessDate())