Java 数据库中的日期范围存储
我试图使用mongodb在数据库中存储daterange值,所以我使用了字符串返回类型,但无法保存daterange。是否可以将日期范围直接保存在数据库中,或者我必须将日期范围拆分为开始日期和结束日期并存储在数据库中?前端是AngularJS,后端是mongoDB MongoDB不提供任何类型的日期范围数据类型 Java8提供了Java 数据库中的日期范围存储,java,angularjs,html,mongodb,Java,Angularjs,Html,Mongodb,我试图使用mongodb在数据库中存储daterange值,所以我使用了字符串返回类型,但无法保存daterange。是否可以将日期范围直接保存在数据库中,或者我必须将日期范围拆分为开始日期和结束日期并存储在数据库中?前端是AngularJS,后端是mongoDB MongoDB不提供任何类型的日期范围数据类型 Java8提供了Period和Duration类型。在Java8之前,有一个很棒的Joda Time库,它还提供了句点和持续时间数据类型 用于Java的MongoDB库没有任何类型的转换
Period
和Duration
类型。在Java8之前,有一个很棒的Joda Time
库,它还提供了句点和持续时间数据类型
用于Java的MongoDB库没有任何类型的转换器。它只知道java.util.Data
不过,如果要存储Java8或JodaPeriod
或Duration
,则需要为Java MongoDB驱动程序编写客户数据类型转换器,或者直接在应用程序代码中进行转换。(两者几乎相同)
通过这种方式,您可以在MongoDB中将日期范围保存为{range:{from:ISODate(“2015-01-01T00:00:00.000Z”)到:ISODate(“2015-01-02T00:00:00.000Z”)}
当然,您必须对范围.from
和范围.to
字段进行查询
当然,第二部分是,HTML日期范围选择器get中的值被正确序列化为字符串,并且可以由Java后端读取 尽管如此(例如,通过简单地使用
System.out.println(…)
)确保数据被Java正确反序列化
如果这一切都能实现,那么您可以处理MongoDB,即将一个DateRange对象转换为两个
java.util.Date
对象,等等。pp.您能再解释一下您的问题吗。。就像您尝试过的东西一样,例如,您尝试存储的值以及存储时出现的准确错误??嗨,Viraj,我没有收到任何错误。。我尝试了“私有字符串日期范围;”然后实体类中的getter和setter。。。从ui中,我将值传递为ng model=“dateRange”。我无法保存到数据库中。我正在从daterange picker日历中选择日期范围。您是否尝试记录并检查是否在java类中收到日期。。?你听起来仍然很抽象,最好看一些代码,这样我们就不会问那么多问题了。。