
本日から○日以内のレコードをセレクトしたいのですが
○日の部分が可変のためJavaのpreparedstatementを使用します。
例)
SELECT timedate FROM testtb WHERE timedate BETWEEN current_timestamp + '-30days' AND current_timestamp;
※timedateはDATE型です
のような事をしたいのですが、
「30」の部分を?にすると
The column index is out of range: 1, number of columns: 0エラーになります。
intervalの使用も考え色々調べていたのですが、いまいちやり方が分かりません。
何か方法をご存知の方、ご教授お願い致します。
No.1ベストアンサー
- 回答日時:
timedateはDATE型ということでしたら、整数の加減算は日単位なので、
SELECT timedate FROM testtb WHERE
timedate BETWEEN current_date - ? AND current_date;
ではいかがでしょうか。
参考までに、TIMESTAMP型の場合には
SELECT timedate FROM testtb WHERE
timedate BETWEEN current_timestamp - (? * interval '1days') AND current_timestamp;
のような書き方ができます。
参考URL:http://www.postgresql.jp/document/current/html/f …
ご回答ありがとうございました。
「整数の加算」という認識が抜けていましたため勉強不足でした事と
current_dateを使用した事がなく思いつきませんでした。
可変部をint型に置き換えた上で上記方法で実装できました。
大変助かりました、参考URLまでご提供いただきありがとうございました。
No.2
- 回答日時:
亀レスですが。
ps = conn.prepareStatement("SELECT timedate FROM testtb WHERE timedate BETWEEN current_timestamp + cast ( ? as interval ) AND current_timestamp");
ps.setString(1,"-30 days");
8..4だったらいけました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
PostgreSQLでのクエリ登録
-
新規作成したPostgresqlデータ...
-
sqlの中で、 例えば条件句で AN...
-
SQLにて指定日付より前、かつ最...
-
Windows10がインストールできま...
-
postgresqlでのトランザクショ...
-
select文の書き方で分からない...
-
SQLでUPSERTを一度に複数行やる...
-
エクセルVBAでUWSCを使う
-
エクセルで縦のカラムデータを...
-
PostgresSQLの環境設定について
-
postgresql についてです
-
列が存在しないと言われる
-
PostgreSQLの初期設定で質問で...
-
”テーブル”恐い
-
iPhoneのステータスバーのキャ...
-
iphoneのVRゴーグルについて
-
Postgreのupdateコマンドでエラー
-
postgresqlのtableのカラムの型...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
informixのSQL関数
-
PostgresSQLでの動的な計算
-
group byで指定したカラム以外...
-
売り上げ集計SQLが作れません
-
○日以内のレコード取得について
-
複数の条件での絞り込み検索の仕方
-
PHP+SQL在庫集計で在庫の累計が...
-
SQLの条件抽出について
-
postgreSQLのselect文でデータ...
-
日時の比較
-
POSTGRESQLでt時間差が30分以上...
-
ストアドプロシージャによる動...
-
SQLでのデータ検索方法
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
SQLサーバに対するSQL文で抽出...
-
UPDATEで既存のレコードに文字...
-
エラーを起こす方法
おすすめ情報