質問 |
||
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 |
|
| |
この回答へのお礼 | この回答にお礼をつける(質問者のみ) |