【PGSQL】BETWEENを使ってみる

Linux
スポンサーリンク

備忘録です()

 

スポンサーリンク

経緯

今まで、日付で間を取るとき、以下のようなSQLを使っていました。

SELECT * FROM table_name where now() > start_date AND now() < end_date;

これで、start_date < now < end_date

になっているデータを抽出していたのですが、なんせ不等号がわからなくなって、逆に書いてしまって全くヒットしない、なんでじゃーってなることが多かったです。

が、最近BETWEENというとても便利なものを知ったので使ってみました。

 

使い方

使い方はとっても簡単。

間にはさみたいものを最初に書いて、BETWEEN と ANDで挟むだけ。

というわけで、上で書いたSQLを書き直してみます。

SELECT * FROM table_name where (now() BETWEEN start_date AND end_date);

視覚的にこちらのほうがわかりやすいですね。

今まで知らなかったためにどれだけめんどくさいSQLを書いていたのか・・・

 

日付がStringの場合

間に挟みたいものか基本的にDATE型かTIMESTAMP型しかできないみたいです。

ので、日付をString型で保管している場合はキャストしないといけないです。

キャストの仕方はこんな感じ

TO_TIMESTAMP('DATE', 'YYYY/MM/DD HH24:MI:SS')
※DATEはStr型の"YYYY/MM/DD HH:mm:ss"って感じ

C#なんかのキャストなんかと似てますね。

 

 

 

コメント

タイトルとURLをコピーしました