2017-11-06 10 views
1

私はDateTime型をMySqlテーブルに型の日付として挿入します。同じDateTime型と日付を比較しようとすると、例外が発生します。MySqlException:SQL構文にエラーがあります。適切な構文については、 'WHERE Date>' 10/7/2017 ''の近くで使用するMySQLサーバーのバージョンに対応するマニュアルを確認してください。C#DateTimeとMySqlの日付を比較します

ToString()メソッドをDateTimeに適用しようとしましたが、同じ例外が発生しました。私が読んだことのすべてから、比較は直感的でなければならないようです。

次のように私のSQL文は次のとおりです。

var last30Days = DateTime.Today.AddDays(-30); 

var sql = @" 
SELECT * FROM table 
WHERE Date >= @last30Days;"; 
+0

これはおそらくあなたが遭遇している同じ問題です:https://stackoverflow.com/questions/3633262/convert-datetime-for-mysql-using-c-sharp MySqlは異なる日付形式を使用しています.net、可能性が高いので、構文エラーを避けるために前後に変換する必要があります。 – user1934587390

+0

私はこれが間違っているとは言わないが、私のテーブルでは日付を見ることができ、それはまったく同じフォーマットになっている。 MM/DD/YYYY。その間に投稿をチェックアウトします。 –

+0

どのようにその変数を使用していますか?コピーの貼り付けエラーがない限り、その文字列と全く一致しないエラーが表示されます。パラメータとNET DBプロバイダを使用して日付の形式を心配する必要はありません – Plutonix

答えて

0

はこれを試してみてください:

string last30Days = DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd HH:mm:ss.fff"); 

var sql = @" 
SELECT * FROM table 
WHERE Date >= @last30Days;"; 

迅速なGoogle検索はthisを見つけました。

0

MySQL Connector for .NETを調べることで、パラメータ化されたクエリを実行することができます。このライブラリには、MySQLの日時フォーマットを処理するための型が含まれています。

関連する問題