「タイムゾーンなしのタイムスタンプ」フィールドを持つ PostgreSQL テーブルがあります。ある時点で、このテーブルにクエリを実行すると、タイムスタンプがクエリの実行日と同じ日付内にあるレコードが必要になります。コードは次のとおりです。
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy/MM/dd HH:00:00");
DateTime dt = new DateTime();
String timeStampAsString = dt.toString(formatter);
String select = "SELECT * FROM " + tableName + " WHERE " + tableName + ".timestamp >= '"+ timeStampAsString + "'";
pst = dbConnection.prepareStatement(select);
pst.execute();
ご覧のとおり、ここでは Joda を使用しています。また、別のポイントでそのテーブルにデータを入力しているので、形式は正しいです (yyyy/MM/dd HH:00:00)。String に変換する代わりに long をクエリに直接渡すことができるかどうかはよくわかりませんが、今のところ気になりません。
クエリ条件が "NOW" タイムスタンプよりも大きいため、これが何かを返す可能性はほとんどありません。必要なのは、「NOW」タイムスタンプと同じ日内にレコードを取得することです。上限と下限を要求する必要があると思いますが、このクエリの下限を計算する方法がわかりません...アイデアはありますか?
ありがとう!