![]() |
1
3
由于“八月星期二下午”(“拉格兰杰特岛的周日下午”?)没有指定年份,因此唯一真正的解决方案是您的所有日期和时间组件表,所有这些组件都可以为空。 另一方面,你混淆了你的数据。 这里有两件事(诚然是相关的):一个人类可读的字符串、date_description和一系列可能的日期。 如果您至少可以指定一个范围,则可以这样做:
这允许您显示任何您想要的内容,并搜索:
显然,“创作日期”(艺术家创作作品的日期)与“作品中描绘的日期”完全不同,如果后者可以确定的话。 |
![]() |
2
3
我正在使用Postgres,我想做同样的事情。如果MySQL有一些类似的几何类型,也许你可以像我一样做: http://www.electricwords.org/2008/11/fuzzy-date-matching-in-postgresql/ |
![]() |
3
3
几乎无论你做什么,你几乎肯定无法让数据库为你完成繁重的工作。所以你有两个选择: 1-如您所述,使用自然字符串 2-存储精确的数据以及该日期的精度 例如,您可以存储“1975年9月23日下午5:10:23”、“正负6个月”,当有人想要搜索在该时间段内发生的记录时,这可能会弹出。 这对查询没有帮助,因为据我所知,MySQL不提供任何容差支持(我所知道的其他数据库也不支持)。你必须基本上查询所有内容,然后过滤掉自己。 |
![]() |
4
2
我认为任何MySQL原生日期表示都不适合你。如果与Unix时间戳(用
|
![]() |
5
1
最后,我决定:为每个日期组件(年、月、日、小时、分钟、秒)设置一列,并为每个组件的范围(年_范围、月_范围、日_范围、小时_范围、分钟_范围、秒_范围)设置相应的列,主要是因为这种方法允许我指定我所知道的 当然 例如,一张特定的照片拍摄于60年代末的8月(年份=1868,年份=2,月份=8,月份=0)。 谢谢大家的帮助! |
![]() |
6
0
创建一个表,列出您可能需要的值,如“早期”或“夏季”。那么,无论你设置了什么数据,都可以有一个根据日期设置外键的算法。 |
![]() |
7
0
根据Chris Arguin的回答,在第二列中,只需另一个日期时间列即可用于存储+/-,然后您应该能够编写一个使用这两列来获取近似日期时间的查询。 |
![]() |
8
0
使用两个日期,确定模糊区域的开始和结束日期。对于像1878年夏天这样的东西,输入18780621到18780920。1923年6月初,你必须决定提前结束的时间,也许是19230601到19230610。这使得可以根据值进行选择。之后你可能仍然想过滤,但这会让你接近目标。 对于那些没有年份的,你必须找到一个不同的系统。 |