데이터를 가져오고 expirationDate (varchar(4000)
)를 DATE
로 변환하도록 제공된 테이블이 SQL Server에 있습니다.잘못된 날짜 값을 필터링합니다.
이 테이블에는 다른 날짜가있는 Excel 시트가 채워졌습니다.
어떻게 든 모든 형식을 하나의 형식으로 변환하고 SELECT
문과 함께 DATE
으로 캐스팅해야합니다. expirationDate
에서
샘플 데이터 :
2099-09-09
NULL
NA
8/25/12
12/21/11
na
2010-11-07
2013-10-07
NULL
3/25/12
tbd
NA
N/A
2009-04-17
2011-02-21
02/15/2011
08/31/11
NULL
2012-11-06
na
2011-12-21
2011-10-09
NA
2009-04-17
NA
2/29/12
내가 시도 :
select CASE WHEN ISDATE(expirationDate) = 1 THEN CAST(expirationDate AS DATE)
ELSE cast(null as DATE) END
FROM [dbo].[ComponentData]
하지만 던지고 오류 : 나는 또한 시도
Conversion failed when converting date and/or time from character string.
:
CONVERT(varchar(4000),CAST(expirationDate AS DATE),100)
,
하지만 똑같은 ... ... (
누구든지 해결할 수 있습니까?
where 절에서 isDate를 사용하여 두 단계로 시도해보십시오. CASE가 항상 단락 회로 평가를 사용하지 않는다는 사실에 문제가있을 수 있습니다. – JohnFx
[dbo]의 에서 CONVERT (varchar (4000), CAST (expirationDate AS DATE), 100) 을 선택하십시오. 여기서 ISDATE (expirationDate) = 1 여전히 오류 발생 – Angelina
사용중인 SQL 버전은 무엇입니까? 나는 생각을 가지고 있을지도 모른다. – JohnFx