特定の日付のデータを抽出する方法です。
条件を指定したい対象のカラムが日付型、タイムスタンプ型となっている場合のWHERE句の指定方法になります。
前提条件
TB_SAMPLEテーブルにDATE型、TIMESTAMP型のカラムを持たせて、3レコード登録している状態です。
DESC TB_SAMPLE;
---------------- ---------------------
ID NOT NULL NUMBER(3)
SYOHIN VARCHAR2(12)
BUY_ DATE DATE
BUY_TIMESTAMP TIMESTAMP(6)
SELECT
SYOHIN AS 商品
, TO_CHAR(BUY_DATE, 'YYYY/MM/DD HH24:MI:SS') AS "購入日(DATE型)"
, TO_CHAR(BUY_TIMESTAMP, 'YYYY/MM/DD HH24:MI:SS.FF3') AS "購入日(TIMESTAMP型)"
FROM
TB_SAMPLE
;
商品 購入日(DATE型) 購入日(TIMESTAMP型)
---------- --------------------- ------------------------
コーヒー 2019/02/01 09:32:55 2019/02/01 09:32:55.000
おにぎり 2019/02/02 09:32:55 2019/02/02 09:32:55.000
ジュース 2019/02/03 09:32:55 2019/02/03 09:32:55.000
DATE型のカラムを使ってデータを抽出する
年月日時分秒を指定して抽出(2019年2月2日9時32分55秒のデータを抽出)
SELECT
SYOHIN AS "商品"
,TO_CHAR(BUY_DATE, 'YYYY/MM/DD HH24:MI:SS') AS "購入日(DATE型)"
FROM
TB_SAMPLE
WHERE
BUY_DATE = TO_DATE('20190202093255', 'YYYY/MM/DD HH24:MI:SS')
;
商品 購入日(DATE型)
--------- --------------------
おにぎり 2019/02/02 09:32:55
年月日を指定して抽出(2019年2月2日のデータを抽出)
SELECT SYOHIN AS "商品" ,TO_CHAR(BUY_DATE, 'YYYY/MM/DD HH24:MI:SS') AS "購入日(DATE型)" FROM TB_SAMPLE WHERE TO_CHAR(BUY_DATE, 'YYYYMMDD') = '20190202' ; 商品 購入日(DATE型) --------- -------------------- おにぎり 2019/02/02 09:32:55
年月日を指定して抽出(2019年2月1日、2019年2月2日のデータを抽出)
SELECT SYOHIN AS "商品" ,TO_CHAR(BUY_DATE, 'YYYY/MM/DD HH24:MI:SS') AS "購入日(DATE型)" FROM TB_SAMPLE WHERE TO_CHAR(BUY_DATE, 'YYYYMMDD') BETWEEN '20190201' AND '20190202' ; 商品 購入日(DATE型) --------- -------------------- コーヒー 2019/02/01 09:32:55 おにぎり 2019/02/02 09:32:55
TIMESTAMP型のカラムを使ってデータを抽出する
年月日時分秒を指定して抽出(2019年2月2日9時32分55秒のデータを抽出)
SELECT
SYOHIN AS "商品"
,TO_CHAR(BUY_TIMESTAMP, 'YYYY/MM/DD HH24:MI:SS') AS "購入日(TIMESTAMP型)"
FROM
TB_SAMPLE
WHERE
BUY_TIMESTAMP = TO_TIMESTAMP('20190202093255', 'YYYYMMDDHH24MISS')
;
商品 購入日(TIMESTAMP型)
--------- ----------------------
おにぎり 2019/02/02 09:32:55
年月日を指定して抽出(2019年2月2日のデータを抽出)
SELECT SYOHIN AS "商品" ,TO_CHAR(BUY_TIMESTAMP, 'YYYY/MM/DD HH24:MI:SS') AS "購入日(TIMESTAMP型)" FROM TB_SAMPLE WHERE TO_CHAR(BUY_TIMESTAMP, 'YYYYMMDD') = '20190202' ; 商品 購入日(TIMESTAMP型) --------- ---------------------- おにぎり 2019/02/02 09:32:55
年月日を指定して抽出(2019年2月1日、2019年2月2日のデータを抽出)
SELECT SYOHIN AS "商品" ,TO_CHAR(BUY_TIMESTAMP, 'YYYY/MM/DD HH24:MI:SS') AS "購入日(TIMESTAMP型)" FROM TB_SAMPLE WHERE TO_CHAR(BUY_TIMESTAMP, 'YYYYMMDD') BETWEEN '20190201' AND '20190202' ; 商品 購入日(TIMESTAMP型) --------- ---------------------- コーヒー 2019/02/01 09:32:55 おにぎり 2019/02/02 09:32:55