我有一个要存储在数据库中的书籍列表。其中一个属性是图书首次出版的日期。在较旧的书籍(超过 100 年)中,我通常只知道十年(如 185X),或者在非常旧的书籍的情况下只知道一个世纪(如 15XX)。
您将如何将这些日期保存在 datetime2 字段中? 15XX 等于 1500?例如,我希望能够查询超过一百年的书籍。所以我想以某种方式将这些值存储为有效的 datetime2 值。有什么建议吗? 15XX 为 '1500-01-01 00:00' 对我来说似乎是合理的。这种方法有什么缺点吗?
请您参考如下方法:
唯一的缺点是当有人要求从 1550 年到 1650 年出版的所有书籍时。你的 15XX 变成了 1500,所以它不会包含在他的结果中。
当给定的书出版时,你真正拥有的是一段不确定的时期。我会存储 2 个日期:一个是月经开始时,另一个是结束时。现代书籍会将其设置为相同的日期,但最旧的可以存储为 1500-01-01 00:00 - 1599-12-31 23:59
当然,它会使选择复杂化。你必须决定它是否值得。您可能会声明要求“1550 到 1650”是愚蠢的。




