当前位置: 首页 > 知识库问答 >
问题:

如何比较HIBERNATE查询中的时间戳?

易弘亮
2023-03-14

我有一个从数据库中检索的时间戳值,然后将其与当前时间戳进行比较。我实际上想检索过去两个小时内登录的用户的数据。不幸的是,我面临着这个错误。请帮帮我,伙计们。我会感谢你的。我被困在这个密码里了。我的问题如下。

super.findByHibernateQuery(LogSession.class, "SELECT ls from LogSession ls, SysUser su where ls.startTime > " + timestamp + " and ls.eventId = " + eventId + " and ls.status= '" + status + "' and su.userType like '%" + userType + "%' and su.userId = ls.userId ");[enter image description here][1]

这就是我的错误。

org.hibernate.hql.ast.查询语法异常:意外令牌: 04行附近1,列128[SELECT ls fromcom.ideacrossing.skild.hbm.LogSagels,com.ideacrossing.skild.hbm.SysUser su其中ls.startTime

共有1个答案

阮飞翔
2023-03-14

您得到错误是因为您没有用引号包装时间戳,所以当sql碰到时间戳中的空格时,它不知道该做什么,并抛出一个错误。在时间戳部分周围添加单引号,如下所示:

super.findByHibernateQuery(LogSession.class, "SELECT ls from LogSession ls, SysUser su where ls.startTime > '" + timestamp + "' and ls.eventId = " + eventId + " and ls.status= '" + status + "' and su.userType like '%" + userType + "%' and su.userId = ls.userId ");[enter image description here][1]
 类似资料:
  • 我有一个类似于。 我有一个数字,12作为参数值。我想做的是,我想将数字12与上述创建的时间和目标进行比较。我该怎么做呢。 我发现,在检索数据的过程中,Laravel会自动将这些创建的对象转换为碳对象。是否有一种方法可以在检索期间提取创建的_的月份部分? 显然,上面的代码不起作用。我发现正在做

  • 问题内容: 我正在尝试比较SQL查询中datetime字段中的时间,但不知道是否正确。我不想比较日期部分,只是时间部分。 我正在这样做: 这是正确的吗? 我问这个问题是因为我需要知道08:00:00是小于还是大于,07:30:00并且我不想比较日期,只是时间部分。 谢谢! 问题答案: 您的比较可以工作,但是会很慢,因为日期会转换为每一行的字符串。为了有效地比较两个时间部分,请尝试: 详细说明:SQ

  • 问题内容: 我看到可以进行日期比较,也可以进行日期比较,但是我一直在努力寻找如何检查当前时间()是否早于指定时间(例如上午8点),还是晚于指定时间(例如上午8点),而不管日期如何。 问题答案: 您 无法 将特定时间点(例如“现在”)与一个固定的重复发生的事件(每天早上8点发生)进行比较。 您可以检查是否现在之前或之后, 今天 上午8点:

  • 问题内容: 例如,假设我有 我如何确定现在是否在这个时间之前?我努力了 但是日期为1970年,因此比较失败 问题答案: 您总是可以做相反的事情:

  • 后继版本:10.4 表列名/类型:带时区的updated_at timestamp(6) Java方法: 这个查询和方法在H2数据库中很好地工作。然而,当使用Postgress数据库对其进行测试时,我得到以下异常 我也尝试了FetchFromTime.ToLocalDateTime(),但得到了相同的异常。

  • 我的数据库有一列是 当生成实体时,它在实体类中创建了一个< code>Timestamp字段。 我的传入对象是一个< code>java.util.Date对象。< code >开始日期和< code >结束日期。 我需要编写一个 JPA 查询,该查询将获取在日期和之间的记录。它正在考虑时间。 查询条件