我可以在DB2中将日期字段设置为null

时间:2013-07-23 17:29:11

标签: db2

为什么DB2在我将其设置为null时在日期字段中写入01/01/0001?

我可以将该字段设置为NULL。当db2将其设置为01/01/0001时,我的ado记录集会因为它不是有效日期而爆炸。

我做错了吗?

2 个答案:

答案 0 :(得分:1)

您当然可以将日期列设置为NULL值。 如何做到这一点?

您使用的客户端正在弄乱您,或者表上有一个触发器会将该列中的NULL值更改为您看到的值。

答案 1 :(得分:0)

  1. 是的,您可以将空值插入日期列。下面是用于插入空值的语法(取决于版本)。时间戳是列类型,因此您可以将其与日期进行交换。根据您的DB2版本,您可能有不同的方法来执行此操作。如果datetime字段的字段规范未设置为允许空值,则无效。

    INSERT INTO [表名](col1,col2,col3)SELECT Value1,Value2, cast(NULL作为时间戳)FROM [源表]

  2. 您看到01/01/0001的原因是因为DB2正在尝试将null转换为值,而01/01/0001是日期字段的默认值。