Scalaquery를 사용하고 있으며 날짜 필드를 기반으로 쿼리를 제한하려고 할 때 문제가 발생했습니다. 0.10.0-M1 아래 코드를 살펴 보자 : 나는 스칼라 2.9.2, ScalaQuery 2.9.1을 사용하고ScalaQuery를 사용하여 날짜별로 쿼리를 제한하는 방법
이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 행을 반환하고 내가 선택을 인쇄하려면 다음 SQL이 생성
SELECT "t1"."OPR_DATE" FROM "MYTABLE" "t1" WHERE ("t1"."OPR_DATE"={d '2012-10-27'})
나는 시험 날짜에 사용할 데이터가 있습니다. SQL 편집기에 SQL을 붙여 넣고 JDBC 편집 형식 ('27-Oct-2012 ')이 아니라 예상되는 행을 반환하도록 날짜를 편집하면됩니다. 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까? 이거 작동하지 않아야합니까?
첫째, 당신은 어떤 데이터베이스를 사용합니까? 그리고 두 번째 - 만약 당신이 그 "다음 SQL은"붙여 넣기, 그것은 필요한 행을 반환합니까? – Rogach
필자는 Oracle 데이터베이스를 사용하고 있으며 클라이언트에 SQL을 붙여 넣을 때 예상되는 행을 얻습니다 (PL/SQL Developer). – myio561
유감스럽게도 테스트 할 Oracle이 없지만 날짜 형식이 일치하지 않을 수 있습니다. 정확한 날짜 대신 int와 같은 간단한 코드를 사용해보십시오. 질문의 마지막 단락은 아마도 힌트 일 것입니다. h2와 같은 메모리 내 데이터베이스로 스왑하고 문제가 Oracle과 관련이 있는지 여부를 확인하는 것이 좋습니다. 오라클에 대한 Slick (새로운 ScalaQuery) 지원이 아직 완료되지 않았 음을 알고 있습니다. 이것은 ScalaQuery에서도 마찬가지 일 수 있습니다 ... – Jack