我有这个表设备活动表
CREATE TABLE EqpActivityTBL
(
EqpAct_ID INT PRIMARY KEY IDENTITY(1, 1),
EqpAct_BorrowDateTime DATETIME,
EqpAct_ReturnDateTime DATETIME,
EqpAct_Room VARCHAR(50),
SysUser_ID INT FOREIGN KEY REFERENCES SysUserTBL,
DeptMember_ID INT FOREIGN KEY REFERENCES DeptMemberTBL,
Eqp_ID INT FOREIGN KEY REFERENCES EqpTBL,
EqpAct_Status VARCHAR(50)
)
可以看到,我有一个EqpAct_ReturnDate列。一旦设备被返回,它将有一个日期值。但如果它没有返回或可能被销毁或可能发生了不好的事情(发送到黑洞可能),我可以在该列中插入一个NULL值吗?它有一个datetime数据类型。我想在这里展示一些东西没有返回。我正在尽力避免在其他数据类型上使用NULL值。
底线是:在datetime上有一个NULL值是好的吗?
Thanks in advance
是的,这很好。空值代表一个缺失的值,比使用一些神奇的日期值更好。
使用可以处理null的字段可能会略微降低性能,因此您应该禁止对于不应该为null的字段使用
使用null值是可以的,但是这会增加代码开销(用于检查null)…或者,您可以保持默认值,如01-01-1900。
答案是肯定的,在你的datetime格式中可以允许null
只是你需要写一些额外的代码来检查null(以避免null引用错误)。相反,您可以将其保留为默认值,就像它将使用诸如19:00:00(或其他任何值)这样,这样您就知道它是默认值。这里不需要解析。
我问:DATETIME是一个8字节的数据类型。您可以使该列为空,但它是固定宽度的数据类型。不是吗?