私はDateオブジェクトを期待していた場合HQL日付クエリ質問
は何か一日を無視/ 05、2011-03-05
のために言うと、私は2011-03ですべてを引っ張ってHQLを使用したいですwhere year(somecolumn) = year(datepassedin) and month(somecolumn) = month(datepassedin)
HQLでは可能ですか?
SQLで行うことがperttyやすいように思わはなく、HQLで
私はDateオブジェクトを期待していた場合HQL日付クエリ質問
は何か一日を無視/ 05、2011-03-05
のために言うと、私は2011-03ですべてを引っ張ってHQLを使用したいですwhere year(somecolumn) = year(datepassedin) and month(somecolumn) = month(datepassedin)
HQLでは可能ですか?
SQLで行うことがperttyやすいように思わはなく、HQLで
まあHQLは年と月expressions持って、あなたはうまくそれを日付オブジェクトを養うことができます。だから、通常のようにQueryオブジェクトを使用してください。空想的で複雑なものはありません。
同じクエリとSQL Serverの2種類の異なるバージョンを試しましたが、where year(somecolumn)
のようなものは、ブラケットクエリよりも大幅に遅い(ほとんどの桁違い)。
範囲の先頭に1つ、最後に1つ、日付を2つ作成する必要があります。あなたは、文字列を持っていることを言う:
val data = "2011-03-05"
どこかには、値を解析するための便利なconstの作成:
val dateFormat: SimpleDateFormat = new SimpleDateFormat("yyyy-MM")
をそして:あなたのクエリでは
val yearMonthString = data.substring(0, 7)
val fromValue = dateFormat.parse(yearMonthString)
val c: Calendar = Calendar.getInstance(iPutATimeZoneHere)
c.setTime(fromValue)
c.add(Calendar.MONTH, 1)
val toValue = c.getTime
を、あなたはwhere somecolumn >= :fromValue and somecolumn < :toValue
を持っています。
このコードはScalaで書かれていますが、標準のJavaライブラリを使用しています。