2011-10-06 83 views
0

我想值插入SQL Server表,但每次我得到SQL Server日期時間NULL值

「無法將NULL值插入列'ddod」錯誤。

[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數據類型到datetime數據類型的轉換導致 超出範圍的價值。

您有以下選擇嗎?

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'正在工作,非常感謝 –