【SQL】Oracleで日付比較する条件設定方法

Oracle

日付型って扱いずらいですよね、株信です。

なので自分の場合は以下のようにしてます。

解決策

TO_CHAR([日付型列名],’YYYYMMDD’) = ‘指定したい日付’

日付で指定する場合

以下 t_test というテーブルが、このようなデータが登録されていたとします。

COL1TDATE
A2020/8/19 12:00
B2020/8/20 10:00
C2020/8/21 13:01
D2020/8/22 18:00
select * from t_test where to_char(tdate,'YYYYMMDD') = '20200819';  --t_testはテーブル名です。

実行すると条件で指定した日付の行だけ抽出されます。

COL1TDATE
A2020/8/19 12:00

期間で指定する場合

以下 t_test というテーブルが、このようなデータが登録されていたとします。

COL1TDATE
A2020/8/19 12:00
B2020/8/20 10:00
C2020/8/21 13:01
D2020/8/22 18:00
select * from t_test where to_char(tdate,'YYYYMMDD') BETWEEN '20200819' AND '20200821';

実行すると条件で指定した期間の日付の行だけ抽出されます。

COL1TDATE
A2020/8/19 12:00
B2020/8/20 10:00
C2020/8/21 13:01

日時で指定する場合

以下 t_test というテーブルが、このようなデータが登録されていたとします。

COL1TDATE
A2020/8/19 12:00
B2020/8/20 10:00
C2020/8/21 13:01
D2020/8/22 18:00
select * from t_test where to_char(tdate,'YYYYMMDD HH24MISS') = '20200819 120000';  --t_testはテーブル名です。

実行すると条件で指定した日時の行だけ抽出されます。

COL1TDATE
A2020/8/19 12:00
タイトルとURLをコピーしました