0
私は多少Javaに慣れていないし、2つの日付の間に自分のmongodbに保存されたドキュメントを返すクエリを作成しようとしている。私はそれが正しいものに近づいていると思うが、そこに行くのは苦労している。私は、次の形式で日付範囲を受け付けております:Spring MongoDB - 2つの日付間でのドキュメントの検索
- [2017年6月29日、2017年7月5日]
次のように私は比較しています日付がデータベースに格納されます。
- YYYY-MM-dd'T'HH:mm:ssの-SSSS
私がこれまで持って何..
public List<VehicleStatus> getReportingDateRange(List<String> dates) {
DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
DateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss-SSSS");
Date startDate = outputFormat.parse(dates.get(0));
Date endDate = outputFormat.parse(dates.get(1));
Query query = new Query();
Criteria c = new Criteria().andOperator(Criteria.where("updateTime").gte(outputFormat.format(startDate)),
Criteria.where("updateTime").lte(outputFormat.format(endDate)));
query.addCriteria(c);
return this.mongoOperations.find(query, VehicleStatus.class);
}
私は解析例外を受け取りました。私は本当にここからどこに行くかわからない、どんな助けも大歓迎です。追加情報が必要な場合は、私に知らせてください。
ありがとうございました!
'Date startDate = inputFormat.parse(dates.get(0)); Date endDate = inputFormat .parse(dates.get(1)); 'あなたの日付は日付の型として保存する必要があります。したがって、出力形式の解析は不要で、 'Criteria c = new Criteria()。andOperator(Criteria.where(" updateTime ").gte(startDate)、 Criteria.where(" updateTime ").lte(endDate)); ' – Veeram
@Veeram日付はDBに文字列として格納されます – reedb89
まあまあです。 try 'String startDate = outputFormat.format(inputFormat.parse(dates [0])); String endDate = outputFormat.format(inputFormat.parse(dates [0]));そしてこれを条件に渡します。 – Veeram