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

前端之家收集整理的这篇文章主要介绍了数据库 – 如何存储(和排序)模糊的日期范围?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数据库需要存储年份(例如寿命),在某些情况下,这些数据不是非常具体.例如,以及通常的“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

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

猜你在找的MsSQL相关文章