質問

QNo.1411568 Oracle(オラクル)で、日付時刻型の検索方法について
質問者:KOHEI_JAPAN 質問させていただきます。
データベースはオラクルを使っていて、
SQL文で、抽出するときにエラーが出て困っています。

日付時刻型が「2005/05/26 19:13:00」という感じで入ってます。
2005/05/26 を抽出したいのですが、
BETWEEN '2005/05/26 00:00:00' AND '2005/05/26 23:59:59'

だと、エラーでできません。
どなた様か、ご教授よろしくお願いしますm(_ _)m
困り度:
  • すぐに回答を!
質問投稿日時:
05/05/26 19:19
この質問に対する回答は締め切られました。

回答

ANo.5 みなさんの回答も正解です。

もうひとつ、trunc関数を使用することが出来たはず

where trunc(col1) =
to_date('2005/05/26', 'YYYY/MM/DD')
回答者:sapporo30
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
05/05/31 02:50
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.4 #1さんや#2さんの方法で結論は出ていると思いますが。。。

補足です。
Date型のカラムに対して
文字型の条件を指定した場合、
デフォルトフォーマットとして
現行セッションのNLS_DATE_FORMATが採用されます。
例えば、NLS_DATE_FORMATが「RR-MM-DD」になっていれば
WHERE カラム='05-05-26'や
WHERE カラム='2005-05-26'
と書けばよいはずです。
回答者:hamu1
種類:アドバイス
どんな人:一般人
自信:自信あり
回答日時:
05/05/27 11:38
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答良回答20pt

ANo.3 日付検索を行う場合は、以下のように書式を含める必要があります。

col BETWEEN TO_DATE('2005/05/26 00:00:00','YYYY/MM/DD HH24:MI:SS') AND TO_DATE('2005/05/26 23:59:59','YYYY/MM/DD HH24:MI:SS')

ただ、厳密には

col >= TO_DATE('2005/05/26', 'YYYY/MM/DD')
AND
col < TO_DATE('2005/05/27', 'YYYY/MM/DD')

と書くべきでしょうね。
回答者:entree
種類:回答
どんな人:一般人
自信:参考意見
回答日時:
05/05/27 11:03
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答良回答10pt

ANo.2 #1さんの方法で良いでしょうがどうしても時刻が必要なら。

to_char([日付型の列名], 'yyyy/mm/dd hh24:mi:ss')と編集して、
比較してください。
回答者:bin-chan
種類:アドバイス
どんな人:一般人
自信:自信あり
回答日時:
05/05/26 20:19
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.1 こんばんは。

>>BETWEEN '2005/05/26 00:00:00' AND '2005/05/26 23:59:59'
BETWEENの前後は、ただの文字列ですよ?

>>2005/05/26 を抽出したいのですが
WHERE TO_CHAR(カラム,'YYYYMMDD')='20050526'
でいいのでは?
(^^ゞ
回答者:taka451213
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
05/05/26 19:58
この回答へのお礼この回答にお礼をつける(質問者のみ)