2013-07-11 4 views
1

데이터베이스 테이블에 날짜 열이 있습니다. 아래 날짜 값이 포함 된 sql case 문

SELECT sDestructionDate FROM tblDocumentHeader 

내가 날짜 값 '1991-01-01'나는 같은 결과 세트 뭔가를 기대

비어 인쇄해야

enter image description here

위의 쿼리의 결과입니다 이하.

enter image description here

나는 아래의 쿼리를 시도했지만 아직도 '1991-01-01'날짜를 인쇄 할 수 있습니다.

SELECT CASE CONVERT(date,h.sDestructionDate,103) 
WHEN '01/01/1991' 
THEN '' 
ELSE CONVERT(date,h.sDestructionDate,103) END 
AS 'sDestructionDate' 
FROM tblDocumentHeader h 

결과를 varchar 값으로 변환하고 싶지 않습니다. 아래 쿼리가 내게 결과를 제공하지만 날짜 형식에서 반환해야합니다.

SELECT CASE CONVERT(varchar,h.sDestructionDate,103) 
WHEN '01/01/1991' 
THEN '' 
ELSE convert(varchar,h.sDestructionDate,103) END 
AS 'sDestructionDate' 
FROM tblDocumentHeader h 
+0

'null'이 맞습니까? – Bohemian

+0

@ 보헤미안 나는 그것을 시험해 볼 필요가있다. 그러나 여전히 나는 성명서를 올바르게 사용해야한다. – chamara

+0

'sDestructionDate'는 실제 날짜 열입니까, 아니면 varchar입니까? – Blorgbeard

답변

5

내가 먼저 널 (null)로 변환합니다 : 값이와 null


혼합 데이터의 경우

select 
    case 
     when h.sDestructionDate = '01/01/1991' then null 
     else h.sDestructionDate 
    end as sDestructionDate 
from tblDocumentHeader h 

그런 다음 현재 빈에보고 도구에 보면 프레젠테이션은 실수입니다. 이 접근법은 간단하며 두 가지 관심사를 데이터으로 구분합니다.

+0

thanks.it worked! – chamara

+0

sDestructionDate가 날짜 필드 인 경우 쿼리는 다음과 같습니다.'WHEN CAST ('1991-01-01'AS DATE) THEN NULL ' – AWippler