java—通过SpringBootJPA在mysql中处理空(零)月或空日的最佳实践

ehxuflar  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(418)

我目前正在解析巨大的xml转储文件,以便放入mysql。通过获取一些头部样本数据,我意识到每个实体都有空的一天或一个月,但偶尔会有空的一天或一个月。i、 e.“1994-00-00”或“1994-06-00”,或“1994-06-03”。
我知道mysql支持5版之后的空日期和一些配置,但是我的一个朋友,他现在是一个dba,告诉我sys date(对我来说是新的)。我不是dba,但渴望学习!)
现在,恕我直言,我想问你们大家。处理这种情况的最佳做法是什么?我是不是应该放个假约会?或者我应该碰一下我朋友告诉我的那个日期?或者我还有其他解决办法吗?
我目前正在通过SpringBootJPA和驱动程序连接mysql,但我渴望探索最合适的解决方案。
p、 整个项目只用于xml解析,并将它们放到mysql中。如果没有好的解决方案,我可能会调查mongodb……:/

ddarikpa

ddarikpa1#

这是什么意思 2020-00-00 或者 2021-03-00 在你的申请表里?
它们指的是一年或一个月的第一天吗?在这种情况下,您应该让java代码将它们转换为 2020-01-01 以及 2021-03-01 因此这些值是指实际的日历日。
是指全年还是月?在这种情况下,您需要想出一种方法来表示表中的时间间隔。也许你可以再加一个日期栏 end_date 像这样填写

value from xml     date        end_date
2020-04-07       2020-04-07   2020-04-07  a day
2020-00-00       2020-01-01   2020-12-31  a year
2020-03-00       2020-03-01   2020-03-31  a month

只有您或xml的创建者才能知道这些不完整的日期实际上意味着什么。
如果我是你,我只会在表中插入有效的日期值,避免利用mysql的伪日期特性。如果我使用mongodb,我也会这么做。

相关问题