Sybaseデータベースを使用しており、タイムスタンプ フィールドを日付として取得したいと考えています。タイムスタンプ フィールドをHQLの日付として使用するにはどうすればよいですか?
私のクエリ:
SELECT new map(NAME,SUM(MARKS),ADMISSIONDATE)
FROM STUDENT
GROUP BY NAME,MARKS,ADMISSIONDATE
ここで、ADMISSIONDATE はデータベースのタイムスタンプです。
クエリで時間を無視したい。
最も簡単な方法は、SybaseのTIMESTAMP列をjava.sql.DateのSTUDENTエンティティにマップすることです。Hibernateは、TIMESTAMP列を適切な日付型にマップする必要があります。
日付、時刻、タイムスタンプ
java.util.DateおよびそのサブクラスからSQLタイプDATE、TIME、およびTIMESTAMP(または同等のもの)へのタイプ・マッピング。
いくつかの提案:新しいマップで名前付きパラメーターを使用する(...)
変換メソッドを使用する
例:
convert(varchar(12),ADMISSIONDATE,109) は、出力を「2013 年 7 月 24 日」として返します。