2014-03-28 1 views
0

안녕하세요 firends 안녕하세요, SQL Server에서 의심의 여지가 있습니다. 문제를 해결하는 방법을 알려주세요. 테이블 : EMPenddate가 비어 있거나 null 인 경우 0 일을 전달하는 방법 nsql 서버

fromdate and enddate both columns datatype varchar. 

    id| fromdate  | Enddate 
    1| 2014-03-20 | 2014-03-25 
    2| 2014-03-15 | 
    3| 2014-02-24 | 2014-02-27 
    4| 2014-03-10 | 
    5| 2014-02-13 | 
    6| 2014-03-01 | 2014-03-10 

이에 따라 내가 원하는 내가로부터 endate 사이 noof 일을 얻을 필요가 여기

id | Noofdays 
    1 | 5 
    2 | 0 
    3 | 3 
    4 | 0 
    5 | 0 
    6 | 9 

아래와 같이 출력. enddate가 비어 있거나 null 인 경우 noof days가 0 일로 처리됩니다. 와 나는 그 보여주는 오류가 어떻게 SQL 서버에서 문제를 해결하는 말씀 해주십시오

select 
datediff(day,fromdate,(CASE WHEN coalesce(ltrim(rtrim([nddate])),'') = '' THEN '0' ELSE ltrim(rtrim([emrenddate])) END) 
) from emp 

아래에 있지만 같은 시도했다.

답변

1

이 시도 :

select id, 
case 
when (enddate is null) or (enddate = '') then 0 
else datediff(day, cast(ltrim(rtrim(fromdate)) as datetime), cast(ltrim(rtrim(enddate)) as datetime)) 
end as NoOfDays 
from yourtable 
order by id 
0

를 종료 날짜로 쿼리 FROMDATE로 변경 "nddate"와 emrenddate에서. 0 대신 NULL이 표시됩니다. NULL 대신 0을 원하면 shree.pat18이 제공 한 쿼리를 사용하십시오.

관련 문제