牛、豚、鶏、どれか一つ食べられなくなるとしたら?

プログラム未経験者です。
aspのSQL文の書き方を教えてください。
(ASP.NETではなく、ASPの方です。)
FORMで受けっ取った日付データをstrdayという変数に代入し、
そのstardayを使ってのSQL文の書き方ですが、
以下のような書き方で良いのか分かりません。
例えば、
前の行の「SQL」という同じ変数の直後に連結する書き方や
文字列との連結の書き方です。
また日付をシングルクオーテーションで囲む書き方などです。

strday = Request.Form("StartDay")

SQL = "SELECT ・・・,・・・,"
SQL = SQL & strday & "as startday_date, ・・・,"

SQL = SQL & " WHERE ('" & strday & "' >= CONVERT(DATETIME, '2012-07-05 00:00:00', 102)) "
SQL = SQL & " AND ('" & endday & "' <= CONVERT(DATETIME, '2012-07-06 00:00:00', 102)) "

すみません。
宜しくお願いします。

A 回答 (1件)

SQL = SQL & ... はこれでOKです。



問題となるのは strday の中にはどんな形式の文字列で入ってきますか?
それによって CONVERT が正しいかどうかが変わってきます。

例えば、
YYYYMMDD とかなら >= の右辺の CONVERT も同じ形式にしてやらないと大小比較が正しくできません。
左辺は文字列形式、そうすると CONVERT の第一引数は VARCHAR、第三引数は 112。

http://www.ilovex.co.jp/Division/SRD/archives/20 …

あと、社内サイトでしょうか?
「SQLインジェクション」についても考慮が必要になるかもしれませんので調べてください。
http://msdn.microsoft.com/ja-jp/library/ms161953 …

#元から実装している他の部分で同様のコーディングになっている場合は大丈夫かな、という判断でよいかとは思いますが、厳密には確認しておく方が。。。
    • good
    • 0
この回答へのお礼

早速ありがとうございます。
YYYY/MM/DDという文字形式のデータが渡されます。
そうすると、おっしゃている"CONVERT の第一引数は VARCHAR、第三引数は 112"というように
変える必要があるということでよろしいでしょうか?

お礼日時:2012/09/18 17:16

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