어떤 이유에서 건 datetime 대신 varchar로 저장된 날짜가있는 하나의 열을 가진 레거시 SQL Server 2000 데이터베이스가 있습니다. 이 데이터에 대해 뷰를 만들고 varchar 대신 datetime 필드를 사용하여 필드에 대한 보고서를 쉽게 작성하려고합니다. 좋은 소식은 의 값 중이 datetime으로 직접 캐스팅 될 수있는 것처럼 보입니다.datetime에 캐스팅 할 수없는 varchar 값이있는 행 목록을 가져올 수 있습니까?
물론 분명히 datetime에 캐스팅 할 수없는 방식으로 입력 된 일부 필드가 있습니다.
CREATE TABLE dbo.user
(
...
birthdate varchar(10)
...
)
을 그리고보기는 다음과 같을 수 있습니다 : : 그냥 명확성을 위하여, 여기에 테이블을 볼 수있는 방법은
CREATE VIEW dbo.UserView
AS
SELECT ...
CAST(u.birthdate AS datetime) AS birthdate
...
FROM user u
WHERE ...
내가 할 수있는 방법이 있나요 :
- 얻을 내가 고칠 수있는 경우 생년월일을 캐스팅 할 수없는 모든 행 목록
- 값을 복구 할 수없는 경우 값이 NULL로 표시되거나 분명히 표시 될 수 있습니다. 아니요 사용자의 실제 생년월일?
작은 것이지만 좋은 점은! = 0보다는 1입니다. 이 특정 함수는 항상 1 또는 0을 반환하지만 많은 함수는 NULL 입력에 대해 NULL을 반환하며 성공 결과에 대해 구체적으로 테스트하는 것이 좋습니다. –
+1 나를 조롱하고 Joel의 의견을 구하십시오. –
@Joel Coehoorn : NULL = 0도 사실이 아니므로 – wqw