2017-01-23 3 views
1

私はC#のSQL上で作業しています。C#日時の問題へのSQL

私は、パラメータとしてSQLストアドプロシージャにこの値を通過したとき、私は例えば

Datetime dt="1/10/2016 12:00:00 AM" 

ためにdatetime値"1/10/2016 12:00:00 AM" をしました、それは私がSQLで1 OCT 2016として結果を必要とする10 Jan 2016

に変更。 SQLストアドプロシージャのパラメータのデータ型はdatetimeです。

多くのありがとう

+0

コードを表示できます。どのように 'dt'に格納し、SQLParameterのように見えるか –

+4

あなたは文字列として渡していると思っていますが、datetimeとして渡すべきです – HoneyBadger

+0

この[question]を見てください(http://stackoverflow.com//2191120/net-datetimeからsqldatetimeへの変換)。 –

答えて

0

パラメータを使用してSQLクエリに値を渡します。標準の日時書式

1

変更日時の値と何が起こったのかを見る - または日時値のため

「s」をmyDateTime.ToString("s");これを使用しています。まだ2016年1月10日に来る場合は、ストアドプロシージャがストア値であるデフォルト値を2016年1月10日に変更している可能性があります。

+0

これは良いコメントですが、悪い答えです。 –

+0

私はZohar Peledを知っています。しかし、我々が50未満の評判であるならば、我々はコメントをすることはできませんstackoverflowルールに従って。だからこの限界のために私はコメントではなく答えとしてしたい。 –

0

まあ、c#の値は実際には1 OCT 201610 Jan 2016
行:

Datetime dt = "1/10/2016 12:00:00 AM"; 

もコンパイルされません。タイプDateTime又はDateTime2のSQLパラメータを使用してDateTime構造体のインスタンスを通過しているC#とSQL Serverの間DateTime値を渡すため

ベストプラクティス。
これを行うと、DateTime値が正しく渡されることが保証されます。