【问题标题】:oracle SYSDATE function not working in mybatisoracle SYSDATE 函数在 mybatis 中不起作用
【发布时间】:2015-03-27 05:23:12
【问题描述】:

我正在尝试将 mybatis 用作 Oracle SQL 的 ORM。 我有一个名为 login_details 的表,其中包含存储时间戳的“login_time”(Timestamp(6)) 列。

现在我想要一个登录时间超过 10 分钟的记录。 所以我尝试了一个查询

   SELECT * FROM login_details WHERE username = 'abc' AND (SYSDATE - login_time) > interval '10' MINUTE

在 DBVisualiser 中工作。 我把这个查询放在mybatis中如下

SELECT * FROM login_details WHERE username = #{username} AND (SYSDATE - login_time) > interval '10' MINUTE

如上图我把它放入mybatis select标签时它不起作用。 而不是这个,我尝试了

 SELECT * FROM login_details WHERE (TO_DATE ('06/03/2015 23:45:34' , 'dd/MM/yyyy HH24:MI:SS') - login_time) > interval '10' MINUTE

在 mybatis 中有效。

mybatis的SYSDATE好像有问题

请指导我解决这个问题

【问题讨论】:

  • 我对mybatis不是很熟悉,但是可以试试带括号的查询吗?所以就像这样sysdate()
  • 但相同的查询不起作用是不可接受的错误。您需要解释错误是什么。
  • @Lalit Kumar Bthanx 回复。但没有显示错误。但查询不返回任何内容
  • 如果在 XML 内部,您需要转义 < 吗?

标签: java oracle oracle11g mybatis


【解决方案1】:

您调用TO_DATE 函数的方式存在问题。用逗号替换减号:TO_DATE ('6/03/2015 23:45:34', 'dd/MM/yyyy HH24:MI:SS')

【讨论】:

    猜你喜欢
    • 2017-03-01
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多