-PR-
  • すぐに回答を!
  • 質問No.7704031
解決
済み

変数を使ってのSQL文の書き方(ASP)

  • 閲覧数721
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 24% (94/379)

プログラム未経験者です。
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)) "

すみません。
宜しくお願いします。
  • 回答数1
  • 気になる数0

質問者が選んだベストアンサー

  • 回答No.1
レベル12

ベストアンサー率 60% (226/373)

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

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

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

http://www.ilovex.co.jp/Division/SRD/archives/2007/08/convert.html

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

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

お礼率 24% (94/379)

早速ありがとうございます。
YYYY/MM/DDという文字形式のデータが渡されます。
そうすると、おっしゃている"CONVERT の第一引数は VARCHAR、第三引数は 112"というように
変える必要があるということでよろしいでしょうか?
投稿日時 - 2012-09-18 17:16:58
  • ありがとう数0
-PR-
-PR-
  • 回答数1
  • 気になる数0
このQ&Aで解決しましたか?

関連するQ&A

-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


-PR-

ピックアップ

-PR-
ページ先頭へ