【发布时间】:2021-04-23 18:36:51
【问题描述】:
在我的数据库中,有一个不可为空的日期列。当我没有提供日期时,该值显示为 0001-01-01。
但是,在客户端中,我需要知道该列何时为空,为此我使用了一个愚蠢的条件:
if (Record.Year == 1)
{
///the column is empty, show "N/A" for date
}
有没有比这更优雅的方式(DB列不能改)?
【问题讨论】:
-
使其可以为空。不要玩游戏,否则你会遇到问题。如果它“不能”被改变,那么无论你选择什么“神奇”的日期,你都会陷入一个痛苦的世界。您也许可以使用
0000-00-00,但它很笨,看起来像一个数据错误。这就是你最终得到 2000 年历史的人和带有两千年后利息的发票的方式。 -
编写一个视图,将不可靠的数据映射到
NULL(应该是这样)。这样你存储它是错误的,但检索它正确。 -
这是可空列的确切用例。修复数据库设计并将任何无意义的日期转换为正确的
NULL值。 -
我不明白你是否想存储空值。然后你可以决定如何处理它们。