0

我在 MySQL 中有一个表,其类型字段DATE用于存储一些日期,我还有另一个表,其中我有一个类型字段,SMALLINT仅用于存储一年。

现在我需要区分一个完全未知的日期(或一年)和一个尚未发生的日期(或一年)。未知值应该是非常简单的NULL。但是,对于使用什么值来存储我提到的类型尚未发生的日期,有什么建议吗?

我很确定不会使用 1000 之前的日期/年份,所以我可以使用例如0000-01-01. 有没有更好/推荐的解决方案?

编辑只需阅读DATE“支持的范围是'1000-01-01'到'9999-12-31'”类型。所以我必须使用1000-01-01而不是0000-01-01.

4

1 回答 1

2

听起来您正在尝试使用一列来存储两个单独的数据位。某人是死是活(实际上是一个状态字段)以及他们死亡的日期是不同的信息。因此,我建议您将它们分开存放。在不知道其死亡日期的情况下,无论某人是生是死,在任何一种情况下,死亡日期都是 NULL。我不会使用日期字段来确定他们是否已经死亡。因此,我建议使用 TINYINT(或 BOOL)列来存储他们是否还活着,并建议使用 NULL-able DATE 字段来存储他们的死亡日期。

于 2012-05-06T12:39:51.043 回答