Java 使用时间限制标准
我在做一个简单的查询时遇到了一些问题。 我有一个postgresql数据库,有一个时区列 我无法更改此列的类型。另外,我必须使用标准,所以不要告诉我改变这个。然而,如果有一个更好的未来解决方案,而不是使用时间类型,我很好奇 此列映射到java.util.Date属性。这可以改成时间或者别的什么。 我要做的是添加以下内容:Java 使用时间限制标准,java,sql,hibernate,time,criteria,Java,Sql,Hibernate,Time,Criteria,我在做一个简单的查询时遇到了一些问题。 我有一个postgresql数据库,有一个时区列 我无法更改此列的类型。另外,我必须使用标准,所以不要告诉我改变这个。然而,如果有一个更好的未来解决方案,而不是使用时间类型,我很好奇 此列映射到java.util.Date属性。这可以改成时间或者别的什么。 我要做的是添加以下内容: Time someTime = someDate.getTime(); criteria.add(Restrictions.eq(propertyName, someTime)
Time someTime = someDate.getTime();
criteria.add(Restrictions.eq(propertyName, someTime)));
这个条件在应该返回的时候不会返回任何内容。所做的是:用户输入一些字符串time,即解析到的日期,即1970-1-1和时间。然后将此时间添加到标准中。另外,我使用的数据库中的时间作为示例,与解析用户数据时创建的日期(1970-1-1等)相同
我试图搜索一些关于如何在没有时区的情况下使用标准的文档,但没有找到任何内容
为什么会失败
更新:使用库JodaTime解决了该问题。但我仍然不明白为什么失败…这两次是在同一个瞬间吗?与中一样,它们返回相同的值?是的,fastime和cDate内容完全相同。我用Restrictions.eq将这个限制添加到criteria中,以防万一。我想你的问题是你在比较java.util.Date和java.sql.Date,这两个时间是完全相同的吗?与中一样,它们返回相同的值?是的,fastime和cDate内容完全相同。我用Restrictions.eq将这个限制添加到criteria中,以防万一。我想你的问题是你在比较java.util.Date和java.sql.Date