首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在SQL数据库中存储没有年份的日期的最好方法是什么?

在SQL数据库中存储没有年份的日期的最好方法是什么?
EN

Stack Overflow用户
提问于 2010-04-20 20:29:48
回答 12查看 9K关注 0票数 12

我正在构建一个应用程序,有一个每日报价,应该存储在数据库中。每个报价都分配了一年中的一天,包括2月29日。既然引用只关心日期,而不是年份,我应该仍然使用smalldatetime类型吗?请让我知道你的意见,谢谢!

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2010-04-20 20:42:57

我最近遇到了这个问题,我最初的设计确实存储了日期,但我只是忽略了年份。然而,它就是感觉不对劲。我决定删除它,改为使用一个单独的Day/Month列。它只是感觉干净多了,可读性也好多了。

更新

然而,在我写这个答案很长一段时间后,事后我举起我的手,说这些评论被天真地忽视了。通过将日/月存储为单独的字段,可能会存储无效数据,而如果将它们存储为完整的DateTime,则可以有效地免费获得验证。

根据您的验证策略,这可能不是一个问题,但是,如果您依赖于DB验证,那么我建议您将其存储为DATE并简单地提取相关信息,或者在插入之前使用触发器运行一些验证。

票数 17
EN

Stack Overflow用户

发布于 2010-04-20 20:43:41

另一种选择(我不认为其他人会提供)是将月份和日期存储为单独的整数。因此,要查找今天的条目,您可以:

代码语言:javascript
运行
复制
select quote from quoteTable where month = 4 and day = 20;

这将允许您在不使用日期(并忽略年份)的情况下获得特定于日期的消息。

这只是个想法。

票数 7
EN

Stack Overflow用户

发布于 2010-04-20 20:34:04

这取决于你必须如何处理这些日期。如果你的数据库中有年份不是问题,那么你可以选择一个闰年,并用它来存储日期,在你的应用程序视图中忽略它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2675039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档