サイトアイコン こじりふぁ

特定の日付で抽出する

特定の日付のデータを抽出する方法です。

条件を指定したい対象のカラムが日付型、タイムスタンプ型となっている場合の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