アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問させていただきます。
データベースはオラクルを使っていて、
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

A 回答 (5件)

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



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

where trunc(col1) =
to_date('2005/05/26', 'YYYY/MM/DD')
    • good
    • 9

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

。。

補足です。
Date型のカラムに対して
文字型の条件を指定した場合、
デフォルトフォーマットとして
現行セッションのNLS_DATE_FORMATが採用されます。
例えば、NLS_DATE_FORMATが「RR-MM-DD」になっていれば
WHERE カラム='05-05-26'や
WHERE カラム='2005-05-26'
と書けばよいはずです。
    • good
    • 8

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



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')

と書くべきでしょうね。
    • good
    • 11

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



to_char([日付型の列名], 'yyyy/mm/dd hh24:mi:ss')と編集して、
比較してください。
    • good
    • 5

こんばんは。



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

>>2005/05/26 を抽出したいのですが
WHERE TO_CHAR(カラム,'YYYYMMDD')='20050526'
でいいのでは?
(^^ゞ
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す