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

お世話になります。

テーブル名:info
フィールド名:no,date,name
フィールドのデータタイプ:int型,char型,char型

のデータベースがあります。dateにはyyyy/mm/ddの形でデータが入っているのですが、
そのdateから、例えば2004/01/01~2005/01/01までに該当するデータを検索して、抽出したいのですが、方法がわかりません。

SELECT REPLACE(date, '/', '') FROM info

で、“/”がないデータを取り出すことはできるのですが、その後どうしたら良いかがわかりません。
どなたかいい方法教えていただけないでしょうか?

A 回答 (3件)

SELECT * FROM info WHERE date BETWEEN '2004/01/01' AND '2005/01/01'



で取れませんか?

この回答への補足

回答ありがとうございます。

教えていただいた方法を試したのですが、
「サーバー : メッセージ 245、レベル 16、状態 1、行 1
構文エラー。varchar 値 '2004/09/13' から int データ型に変換できませんでした。」
というエラーが出てしまいました。
なぜ出てきたのでしょう?
もしかして、データの入力をVBScriptで作成したASPのページから行っている所為なのでしょうか?

補足日時:2005/03/24 18:29
    • good
    • 3

misty7666さんの書き方で取れると思います。



SQL文の日付の指定部分ですが、シングルクォーテーション「'」で囲まれていないと「構文エラー・・・・」
が発生するので、その点を確認してみてください。

(「SELECT * FROM info WHERE date BETWEEN 2004/01/01 AND 2005/01/01」とかになってませんか?)
    • good
    • 4
この回答へのお礼

回答ありがとうございます。

できました!
原因は、フィールド内に入っていたゴミデータの所為でした。
テストデータで試していたので、「1/1/2005」や「1/1」みたいな変な形式のデータがあったのですが、それらを消すもしくはyyyy/mm/ddの形に直したら、misty7666さんに教えていただいた方法でできました。

回答してくださったみなさん、本当にありがとうございましたm(_ _)m

お礼日時:2005/03/24 22:09

select * from info


where date between
to_char('2004/01/01','yyyy/mm/dd')
and
to_char('2005/01/01','yyyy/mm/dd')
;
ではどうでしょうか。

この回答への補足

回答ありがとうございます。

教えていただいた方法は、そのままコピー&ペーストしていいんですよね?
コピペで行った結果、
「サーバー : メッセージ 195、レベル 15、状態 10、行 3
'to_char' は 関数名 として認識されません。」
とエラーを出されてしまいました・・・

補足日時:2005/03/24 19:25
    • good
    • 2

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

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