在数据库中为datetime数据类型设置NULL值是否可以?

时间:2013-01-16 08:32:50

标签: sql-server database datetime null

我有这张表设备活动表

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值吗?无论如何,它有一个日期时间数据类型。我试图在这里显示某些东西未能返回。我正在尽力避免其他数据类型的NULL值。

Bottomline是:在datetime上有空值吗?

提前致谢

3 个答案:

答案 0 :(得分:0)

是的,这很好。空值表示比使用某个魔术日期值更好的缺失值。

使用可以处理null的字段可能会略微降低性能,因此对于不应为null的字段,您应该禁止它。

答案 1 :(得分:0)

可以使用null值,但它会增加代码中的开销(用于检查null)...或者,您可以保留默认值,如01-01-1900。

答案 2 :(得分:0)

答案为是,可以在您的日期时间格式中使用null

只是你需要编写一些额外的代码来检查null(以避免空引用错误)。相反,你可以把它保留为默认值,就像需要19:00:00(或其他任何东西)这样的东西,这样你就知道它是deault值。这里不需要解析。