【问题标题】:Hibernate HQL query error: The conversion of a varchar data type to a smalldatetimeHibernate HQL 查询错误:将 varchar 数据类型转换为 smalldatetime
【发布时间】:2018-10-06 17:43:44
【问题描述】:

我尝试从 Hibernate HQL 查询中获取结果:

来自 StopsRegister s where s.startTime>='2018-04-25 07:59:00.0' and s.endTime

从 StopsRegister 开始,其中 s.startTime 在 '2018-04-25 08:42:00' 和 '2018-04-26 08:42:00' 之间

当添加第二个日期时问题开始:和 s.endTime

但得到 SQL 错误:

将 varchar 数据类型转换为 smalldatetime 数据类型导致值超出范围。

这就是我获取日期值的方式:

Timestamp.valueOf(LocalDateTime.of(toDatePicker.getDate(), toTimePicker.getTime()));

数据类型为:java.sql.Timestamp; 数据库:MS SQL Server。

在我看来日期格式是正确的,我不明白这个错误。

【问题讨论】:

  • 请提供一些导致错误的示例数据

标签: sql-server hibernate hql


【解决方案1】:

解决问题:

Session session = HibernateUtil.getSessionFactory().openSession();
        Query q = session.createQuery("from StopsRegister s where s.startTime >= :from and s.startTime <= :to");
        q.setTimestamp("from", from);
        q.setTimestamp("to", to);
        stopRegisterList = (ArrayList<StopsRegister>) q.list();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    相关资源
    最近更新 更多