我正在从一个数据库表中读取数据并将相同的数据写入另一个数据库表。现在,如果源中的日期字段没有任何数据 ( null
),那么当它被写入目标表时 - 相同的字段默认为日期“1/1/1900”。我没有在我的程序的任何地方设置这个默认值。不知道为什么会这样。
知道如何防止这种情况发生,而不是检查每个字段的null
值并将其设置为不同的值吗?
我正在使用 Eclipse 和 SQL Server 数据库。
谢谢。
我正在从一个数据库表中读取数据并将相同的数据写入另一个数据库表。现在,如果源中的日期字段没有任何数据 ( null
),那么当它被写入目标表时 - 相同的字段默认为日期“1/1/1900”。我没有在我的程序的任何地方设置这个默认值。不知道为什么会这样。
知道如何防止这种情况发生,而不是检查每个字段的null
值并将其设置为不同的值吗?
我正在使用 Eclipse 和 SQL Server 数据库。
谢谢。
一种可能性是日期列的默认值实际上设置为“1/1/1900”。如果是这样,请使用 SQL ALTER TABLE 删除此默认值。SQL Server 的语法是:
ALTER TABLE Table1 ALTER COLUMN DateColumn1 DROP DEFAULT
更新:看起来这个日期是开箱即用的默认日期,请尝试设置:
ALTER TABLE Table1 ALTER COLUMN DateColumn1 DATETIME NULL
这里有一些重要的注意事项: