2012-03-14 28 views
0

私は2つのdatepickersによって駆動されるwpfで作ったいくつかのユーザーコントロールを持っています。 1つのピッカーが日付範囲の開始を制御し、もう一方が日付範囲の終了を制御します。sqlが日付に日付を渡す

datepicker.selecteddateプロパティに問題があり、日付とともに時間を与えてしまいました。その後、渡された時間の値が多くの結果をフィルタにかけるため、SQLの結果がすべてではありませんでした。私は、その時刻を深夜にフォーマットした場合、結果はすべてそこにあることに気づきましたが、日付ピッカーで新しい選択を選ぶたびに、フォーマットされた時刻がリセットされます。

テストの結果、datepickerテキストプロパティの値をパラメータとして渡すことができることがわかりました。このプロパティの値は文字列型で、現在選択されている日付の日付値に設定されます(例:3/14/2012 5:00:32 AMが選択され、 '3/14/2012'がテキスト値)。

これまでのところ、驚いたことに、これは私が望むすべての結果を返すようです。

私はこれが実際に動作する理由について疑問を抱いていました( 'mdy'のリテラルフォーマットはサポートされていてデフォルトですか?)、私のやっていることに否定的な欠点があるのでしょうか?私は何かがうまく動作しているという理由だけで、何回も実稼働環境で使うべきではありません。私は他の人とテーブルを共有するか、datetimeフィールドとパラメータを日付に変換して実行するだけです。

私の質問が意味をなさないことを願っています。時々彼らはしません。質問があればコメントを残し、私はチャイムインします。

+1

RDBMSとは? SQL Serverの場合、パラメータの実際のデータ型は何ですか? –

+0

RDBMSを含むどのソフトウェアを使用しているか教えてください。 – Marc

+0

Martin Smith:日付の文字列表現をsprocのdatetimeパラメータに渡す。 sprocはdatetime形式のフィールドを他のテーブルから呼び出す。 – TWood

答えて

0

否定的な欠点は、私には見えません。これは多くのアプリやDBで処理する方法です。しかし、私は通常それを処理する方法は、追加されているレコード(つまり、BusinessDate、LoadDate)を必要としない場合は、唯一の日付と時間のないレコードを追加する - ので、値は常に形式である3/14/2012 12:00:00 AM私はあなたが時間に対処する必要がないので、かなり簡単にクエリを行うと思う。datetimepickerで日付を検索するとき、私のUI(winforms)で私はdatetimepicker.Value.Dateを使用して、同様の形式で日付を与える(3/14/2012 12:00:00 AM)。

datetimeが必要なフィールドがテーブルにある場合は、それを使用して、テーブルの日付をフォーマットするか、または検索する日付を含むdate > yourdate AND date <= yourdateを使用して日付を検索できます。

+0

あなたの言っていることは意味があります。実際には、ディスプレイに使用されたvarcharとして書式設定された時間の値を持っていたビューと、変更されずにクエリを簡単にするために使用される「エントリタイム」というビューがありました。私は戻ってそこに日付フィールドを投げるかもしれないと思います。あなたが参照していたdatepickerプロパティが見つかったようです。 wpfでは、winforms構文のDatePicker.SelectedDate.Value.Dateと若干異なります。 – TWood

+0

プロパティを見つけられたらうれしく思います。 – Taryn

+0

私はあまりにも。コードがクラージーになっているような感じがして、これが修正され、私にも何かが教えられます。実際に私の質問に答える時間をとってくれてありがとう、ちょうどrepポイントと保釈をつかむことではありません。良いものを持っている。 – TWood