- ベストアンサー
ASPで日付(期間)検索
- ASPを使用して書籍のデータベース(SQL7.0)に接続し、発行日を期間で検索する方法を知りたいです。
- テーブル名「T_書籍」のフィールド名「発行日」を使用し、ASPで作成したテキストボックス「RDate1」と「RDate2」に入力した期間でデータを検索する方法を教えてください。
- 現在データベースへの接続はできており、SQL文の一部を作成することまではできていますが、期間を指定する箇所がわかりません。おそらく「BETWEEN」を使用するのかと思いますが、具体的な方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1の者です。 すみません。 間違ってました 「&」が抜けてました。 strSQL = strSQL & Month(RDate1) & "/" & Day(RDate1) & "/" & Year(RDate1) としてください。 ところで、RDate1,RDate2はテキストボックスなんですね。 変数と勘違いしてました。 ASPでは、当該ページのテキストボックスを直接参照できず、サブミットしたリンク元WebページからRequest.Form("RDate1")という形でテキストボックスの値を受け取ることになりますがこの辺はご了解下さい。 上記例では RDate1 = Request.Form("RDate1") といった形で、サブミットしたページのテキストボックスの値をいったん変数に入れていることを仮定してます。
その他の回答 (1)
- mfuku
- ベストアンサー率50% (173/345)
SQL7.0とは、SQL-Server 7.0ですよね? 基本的に、日付検索をする場合は 'MM/DD/YYYY' の形で指定してください。 従って、 strSQL = "SELECT [発行日] FROM [T_書籍] WHERE [発行日] BETWEEN '" strSQL = strSQL & Month(RDate1) & "/" & Day(RDate1) & "/" Year(RDate1) strSQL = strSQL & "' AND '" strSQL = strSQL & Month(RDate2) & "/" & Day(RDate2) & "/" Year(RDate2) & "'" で良いかと思います。 #は必要ありません。
補足
mfukuさん 素早い回答ありがとうございます。 SQL7.0というのは、仰るとおりSQL-Server7.0のことです。 早速試してみたのですが 以下のようにエラーになってしまいました。 (3行目は加工してあります) Microsoft VBScript コンパイル エラー エラー '800a0401' ステートメントの末尾が不正です。 /xxxx/xxxx.asp, 行 x strSQL = strSQL & Month(RDate1) & "/" & Day(RDate1) & "/" Year(RDate1) -------------------------------------------------------^ ちなみにデータベース上の「発行日」のデータ型は smalldatetime ですが datetime型にしても結果は同じでした。
お礼
mfukuさん。 重ねてのご回答ありがとうございます。 おかげさまで滞りなく検索することができました。 そういえば変数について書いてませんでしたね。 わざわざご指摘いただきすいませんでした。