日付型って扱いずらいですよね、株信です。
なので自分の場合は以下のようにしてます。
解決策
TO_CHAR([日付型列名],’YYYYMMDD’) = ‘指定したい日付’
日付で指定する場合
以下 t_test というテーブルが、このようなデータが登録されていたとします。
COL1 | TDATE |
A | 2020/8/19 12:00 |
B | 2020/8/20 10:00 |
C | 2020/8/21 13:01 |
D | 2020/8/22 18:00 |
select * from t_test where to_char(tdate,'YYYYMMDD') = '20200819'; --t_testはテーブル名です。
実行すると条件で指定した日付の行だけ抽出されます。
COL1 | TDATE |
A | 2020/8/19 12:00 |
期間で指定する場合
以下 t_test というテーブルが、このようなデータが登録されていたとします。
COL1 | TDATE |
A | 2020/8/19 12:00 |
B | 2020/8/20 10:00 |
C | 2020/8/21 13:01 |
D | 2020/8/22 18:00 |
select * from t_test where to_char(tdate,'YYYYMMDD') BETWEEN '20200819' AND '20200821';
実行すると条件で指定した期間の日付の行だけ抽出されます。
COL1 | TDATE |
A | 2020/8/19 12:00 |
B | 2020/8/20 10:00 |
C | 2020/8/21 13:01 |
日時で指定する場合
以下 t_test というテーブルが、このようなデータが登録されていたとします。
COL1 | TDATE |
A | 2020/8/19 12:00 |
B | 2020/8/20 10:00 |
C | 2020/8/21 13:01 |
D | 2020/8/22 18:00 |
select * from t_test where to_char(tdate,'YYYYMMDD HH24MISS') = '20200819 120000'; --t_testはテーブル名です。
実行すると条件で指定した日時の行だけ抽出されます。
COL1 | TDATE |
A | 2020/8/19 12:00 |