我正在构建一个应用程序,有一个每日报价,应该存储在数据库中。每个报价都分配了一年中的一天,包括2月29日。既然引用只关心日期,而不是年份,我应该仍然使用smalldatetime类型吗?请让我知道你的意见,谢谢!
发布于 2010-04-20 20:42:57
我最近遇到了这个问题,我最初的设计确实存储了日期,但我只是忽略了年份。然而,它就是感觉不对劲。我决定删除它,改为使用一个单独的Day/Month列。它只是感觉干净多了,可读性也好多了。
更新
然而,在我写这个答案很长一段时间后,事后我举起我的手,说这些评论被天真地忽视了。通过将日/月存储为单独的字段,可能会存储无效数据,而如果将它们存储为完整的DateTime,则可以有效地免费获得验证。
根据您的验证策略,这可能不是一个问题,但是,如果您依赖于DB验证,那么我建议您将其存储为DATE并简单地提取相关信息,或者在插入之前使用触发器运行一些验证。
发布于 2010-04-20 20:43:41
另一种选择(我不认为其他人会提供)是将月份和日期存储为单独的整数。因此,要查找今天的条目,您可以:
select quote from quoteTable where month = 4 and day = 20;这将允许您在不使用日期(并忽略年份)的情况下获得特定于日期的消息。
这只是个想法。
发布于 2010-04-20 20:34:04
这取决于你必须如何处理这些日期。如果你的数据库中有年份不是问题,那么你可以选择一个闰年,并用它来存储日期,在你的应用程序视图中忽略它。
https://stackoverflow.com/questions/2675039
复制相似问题