sql - 日期对象上的 Hazelcast SqlPredicate

标签 sql date hazelcast

我正在尝试使用 Hazelcast 构建一个应按日期过滤的 SqlPredicate。

我得到的异常如下:

java.lang.RuntimeException: Unable to parse date from value: '2013-06-21 03:15:44.000' ! 
Valid formats are: 'EEE MMM dd HH:mm:ss zzz yyyy', 'yyyy-MM-dd hh:mm:ss.SSS' and 'yyyy-mm-dd'.

奇怪的是,我的日期与第二个“有效”模式完全匹配。

我该怎么办? 提前致谢...

最佳答案

我正在查看 com.hazelcast.query 包中的 hazelcast 源代码,版本 2.5,似乎在 Predicate 中使用了与日期相关的表达式需要根据其类型采用格式:

  1. java.util.Timestamp - “yyyy-MM-dd hh:mm:ss.SSS”

  2. java.sql.Date - “yyyy-mm-dd”

  3. java.util.Date - “EEE MMM dd HH:mm:ss zzz yyyy”

如果您可以轻松使用java.util.Timestamp,则可以按照您拥有的格式使用日期表达式。

或者,如果您使用java.util.Date,那么您可以尝试使用“EEE MMM dd HH:mm:ss zzz yyyy”格式的相同日期吗?

希望这有帮助。

下面粘贴了来自 Predicates.java 的相关 hazelcast 源代码:

        } else if (type instanceof Timestamp) {
            if (value instanceof Date) { // one of java.util.Date or java.sql.Date
                result = value;
            } else {
                result = DateHelper.parseTimeStamp(valueString);
            }
        } else if (type instanceof java.sql.Date) {
            if (value instanceof Date) { // one of java.util.Date or java.sql.Timestamp
                result = value;
            } else {
                result = DateHelper.parseSqlDate(valueString);
            }
        } else if (type instanceof Date) {
            if (value instanceof Date) { // one of java.sql.Date or java.sql.Timestamp
                result = value;
            } else {
                result = DateHelper.parseDate(valueString);
            }

来自 DateHelper.java

static final String timestampFormat = "yyyy-MM-dd hh:mm:ss.SSS";
static final String dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy";
static final String sqlDateFormat = "yyyy-mm-dd";

关于sql - 日期对象上的 Hazelcast SqlPredicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17270620/

相关文章:

java - 如何在java中保存日期(dd.mm.yyyy)

javascript - 从 JS 日期开始的 Highcharts X 轴时间

windows - 如何在批处理文件中获取一年中的某一天

java - Hazelcast 持久消息队列

java - Hazelcast 驱逐和分布式查询

sql - 使用 SQL 执行内部自连接的更好方法是什么?

mysql - SQL 替换语句的正确 MariaDB 语法

php - 提高复杂 SQL 查询的性能

sql - 如何完全在 BigQuery 中创建具有嵌套架构的新表

spring-boot - 每个 Spring Boot 实例 2 个 Hazelcast 成员