0

DateTimeWindows Server 2008 r2 にインストールされた SQL Server 2005 Express に基づいて行をクエリする方法は?

開始日と終了日の値に基づいて行を選択するコードがあります。Windows 7 システムで動作しています。しかし、Windows Server 2008 R2 では動作しません。

this.filterreportTableAdapter.FillBy(this.cRdataset.filterreport_datatable, fromdate, todate);

私のSQLクエリは

SELECT * 
FROM tablename 
WHERE DATE BETWEEN @fromdate and @todate
4

3 に答える 3

1

日付/時刻の値が文字列として渡されているようです。これは常に悪い考えであり、フォーマットの問題がたくさんあります。ここでの最善のアプローチは、正しく型指定されたパラメーターを使用することです。クライアントとサーバーの両方がそれが DateTime であることを認識している場合、文字列ではなくプリミティブ値として渡されるため、フォーマットの問題は発生しません。

C# の と がであること、fromdateおよびTSQL のとが であることを確認してください。todateDateTime@fromdate@todatetablename.DATEdatetime

于 2012-07-22T08:17:22.663 に答える
0

Windows 7 と同じ日時形式を設定してください。例: dd/MM/yyyy

于 2012-07-22T08:01:10.030 に答える
0

日付パラメーターを渡すときに日付形式に誤りがあるようです。2 つの解決策があります。最初に、YYYYMMDD ex : 20120722 のように、どこでも機能する日付形式を使用してみてください。別の解決策は、SQL クエリで DateDiff を作成することです。

于 2012-07-22T08:02:19.853 に答える