如何使用ScalaQuery按日期限制查询

如何使用ScalaQuery按日期限制查询,scala,date,where,scalaquery,Scala,Date,Where,Scalaquery,我正在使用Scalaquery,当我试图基于日期字段限制查询时遇到了一个问题。我使用Scala 2.92,ScalaWury2.91:0.10-0M1考虑下面的代码: case class MyCase (opr_date: Date) object MyClass extends BasicTable[MyCase]("MYTABLE") { def opr_date = column[Date]("OPR_DATE") def * = opr_date &l

我正在使用Scalaquery,当我试图基于日期字段限制查询时遇到了一个问题。我使用Scala 2.92,ScalaWury2.91:0.10-0M1考虑下面的代码:

case class MyCase (opr_date: Date)       

object MyClass extends BasicTable[MyCase]("MYTABLE") {

    def opr_date = column[Date]("OPR_DATE")
    def * = opr_date <> (MyCase, MyCase.unapply _)

    def test(date: Date) = db.withSession {

        logDebug("test date:  " + date)
        val qry = for {
                d <- MyClass if (d.opr_date === date)
        } yield d.opr_date
        logDebug(qry.selectStatement)
        qry.list
    }
}
当我打印select时,查询返回0行并生成以下SQL:

SELECT "t1"."OPR_DATE" FROM "MYTABLE" "t1" WHERE ("t1"."OPR_DATE"={d '2012-10-27'}) 

我有测试日期的数据。如果我将SQL粘贴到SQL编辑器中并编辑日期,使其不是JDBC模板格式(“2012年10月27日”),查询将返回预期的行。谁能告诉我我做错了什么?这不应该吗?

今天早上我发现这是一个数据问题。查询工作正常。原来我连接错了服务器。我们有一个混乱的多个环境和备份系统的设置,它们共享相同的数据库名称。连接到正确的服务器后,查询将按预期工作。我在代码和编辑器工具之间看到了不同的结果,因为它们指向不同的服务器(相同的数据库名称)。感谢所有花时间为我研究这个问题的人。我感谢你的努力

首先,你使用什么数据库?第二,如果粘贴“跟随sql”,它会返回所需的行吗?我使用的是Oracle数据库,是的,当我将sql粘贴到客户机(PL/sql Developer)中时,我会得到预期的行。不幸的是,我没有Oracle可供测试,但可能是日期格式不匹配。尝试使用简单的代码,例如int而不是date。你问题的最后一段可能是对答案的暗示。应该值得花点时间去研究像h2这样的内存数据库,看看这个问题是否与Oracle有关。我知道Slick(新的ScalaQuery)对Oracle的支持尚未完成。ScalaQuery也可能是这样。。。
SELECT "t1"."OPR_DATE" FROM "MYTABLE" "t1" WHERE ("t1"."OPR_DATE"={d '2012-10-27'})