Scalaqueryを使用していますが、日付フィールドに基づいてクエリを制限しようとすると問題が発生します。私はScala2.9.2、ScalaQuery 2.9.1:0.10.0-M1を使用しています。以下のコードを検討してください。
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
}
}
このクエリは行を返しません。呼び出しコードは次のとおりです。
"The data" should {
"be available " in {
val testDate = CommonFormat.parseDate("2012-10-27", CommonFormat.EURO_SHORT).getTime
val records = MyClass.test2(new java.sql.Date(testDate))
records.size must be_>(0)
}
}
クエリは0行を返し、selectを出力すると次のSQLを生成します。
SELECT "t1"."OPR_DATE" FROM "MYTABLE" "t1" WHERE ("t1"."OPR_DATE"={d '2012-10-27'})
テスト日のデータがあります。SQLをSQLエディターに貼り付け、JDBCテンプレート形式( '27-Oct-2012')ではないように日付を編集すると、クエリは期待される行を返します。誰かが私が間違っていることを教えてもらえますか?これはうまくいかないのですか?