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