加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

数据库 – 如何存储(和排序)模糊的日期范围?

发布时间:2020-12-12 16:56:03 所属栏目:MsSql教程 来源:网络整理
导读:我有一个数据库需要存储年份(例如寿命),在某些情况下,这些数据不是非常具体.例如,以及通常的“1960”,我们有’c. 1960年代,“1960年左右”,1960年代在1960年,以及’nd’,没有日期,这是截然不同的空白,直到现在. 什么是最好的方式存储这些? 我正在考虑将年份
我有一个数据库需要存储年份(例如寿命),在某些情况下,这些数据不是非常具体.例如,以及通常的“1960”,我们有’c. 1960年代,“1960年左右”,1960年代在1960年,以及’nd’,没有日期,这是截然不同的空白,直到现在.

什么是最好的方式存储这些?

我正在考虑将年份存储为字符串,并将其添加到数十年,并将“c”保存为大约,“nd”为无日期,但这感觉是错误的.另外,按时间顺序排序,我需要在c之前插入20世纪60年代的物品. 1960年物品,而1960年物品.

我该如何正确地做到这一点?

一些示例日期范围:

1957年
C. 1957年
C. 1957年至1965年
C. 1957 – 1960年代
C. 1957 – 现在
C. 1957年

谢谢你的帮助!

解决方法

您可以插入范围的最早和最新的日期.

喜欢,确切的日期将是

Jan 1,1960   Jan 1,1960

,C. 1960年将是

Jan 1,1960   Dec 31,1960

20世纪60年代将是

Jan 1,1969

等等

那么你可以按照第一个日期和过期日期进行订购:

SELECT  *
FROM    mytable
ORDER BY
        start_date,DATEDIFF(end_date,start_date) DESC

或者,您可以存储预期值和偏差,而不是开始和结束日期.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读