2011-10-06 5 views
0

나는 SQL Server 테이블에 값을 삽입 할,하지만 때마다 내가SQL 서버 날짜 시간 NULL 값

오류 "열 'DDOD'에 NULL 값을 삽입 할 수 없습니다"얻을. 어떤 날짜가 선택되지 않았기 때문에

[ddod] [datetime] NOT NULL 
내가 NULL 값을 삽입하고 있지 않다

하지만 0000-00-00 00:00:00.000.

0000-00-00 00:00:00.000은 NULL과 동일합니까? 도움

+1

0000-00-00 00 : 00 : 00.000'은 유효한 'datetime'이 아니며 어쨌든 실패합니다. 이걸 어떻게 삽입하고 있니? –

+0

유효한'datetime'은 무엇인가요? 저는'1900-01-01 00 : 00 : 00.000'과 같습니다. INSERT 쿼리를 사용하고 있습니다. –

답변

2

'0000-00-00 00:00:00.000'에 대한 많은 유효한 datetime

select CAST('0000-00-00 00:00:00.000' as datetime) 

하지

덕분에 날짜 시간 데이터 유형에 VARCHAR 데이터 형식의 변환 을 결과

다음과 같은 오류를 제공합니다 범위를 벗어나는 값입니다.

다음과 같은 옵션이 해제되어 있습니까?

set arithabort off 
set ansi_warnings off 

select CAST('0000-00-00 00:00:00.000' as datetime) 

이 경우 대신 NULL으로 전송됩니다.

어쨌든 NULL을 사용하여 "마술"센티널 값 대신 값이 없음을 나타내는 이유가 있습니까?

+0

모르겠다. 리모트 테이블이다. INSERT 권한만을 가지고있다 ... –

+2

@PeterO - 최소'datetime '은''1753-01-01 00 : 00 : 00.000'' –

+0

'1753-01이다. -01 00 : 00 : 00.000'이 작동합니다. –