为什么DB2在我将其设置为null时在日期字段中写入01/01/0001?
我可以将该字段设置为NULL。当db2将其设置为01/01/0001时,我的ado记录集会因为它不是有效日期而爆炸。
我做错了吗?
答案 0 :(得分:1)
您当然可以将日期列设置为NULL值。 你如何做到这一点?
您使用的客户端正在弄乱您,或者表上有一个触发器会将该列中的NULL值更改为您看到的值。
答案 1 :(得分:0)
是的,您可以将空值插入日期列。下面是用于插入空值的语法(取决于版本)。时间戳是列类型,因此您可以将其与日期进行交换。根据您的DB2版本,您可能有不同的方法来执行此操作。如果datetime字段的字段规范未设置为允许空值,则无效。
INSERT INTO [表名](col1,col2,col3)SELECT Value1,Value2, cast(NULL作为时间戳)FROM [源表]
您看到01/01/0001的原因是因为DB2正在尝试将null转换为值,而01/01/0001是日期字段的默认值。