1

SQLストアドプロシージャのWHERE句で日付を比較する方法を教えてください。

ユーザーが任意の形式で日付を入力できるテキスト ボックス フィルターをユーザーに提供しました (例: 13/09/2013、13092013、13-Sep-2013、130913)。DB テーブルには、このフィルターを適用する日時型の列があります。

ここで3つ質問があります

  1. 最初にC#コードに入力する特定の日付のみに変換する必要がありますか。はいの場合、日付形式は重要ですか?
  2. 日付型パラメータがnullまたは空でないかどうかを確認する方法は?
  3. 上記の日付のみの型 (C# コードから) を DB テーブルの datetime 列と比較するにはどうすればよいですか?

コード例は本当に高く評価されます。

敬具

4

1 に答える 1

2

答え:

(1)。ユーザーに特定の形式での入力を強制する必要があります。入力形式がわからない場合12-11-2013、11 月 12 日か 12 月 11 日かはどうやってわかりますか? これはほんの一例です。

ユーザー入力形式がわかっている場合は、それをコード内の日付に変換するか、ISO FORMAT ( yyyymmdd) の文字列としてストアド プロシージャに渡すことができます。

ユーザー入力が有効な日付ではない場合、ストアドプロシージャの呼び出しを停止できるため、最初の方法の方が適切です。

(2)。コード ビハインドは、ユーザー入力を文字列として受け取ります。したがって、次のようなコードビハインドで確認できます。

 bool isNull = string.IsNullOrWhiteSpace(userEnteredDate);

(3)。あなたのストアドプロシージャで

 --Rest of the query
 WHERE Convert(date, yourdateColumn) = @yourDateParameter
于 2013-09-13T13:52:39.727 に答える