0

WHERE 句で、2 つの datetimepicker から datetime を使用する選択があります。SELECT は問題なく実行され、データグリッドにデータが入力されますが、奇妙なことに、SELECT の日時部分は完全に無視され、すべてが "WHERE x_account_id = " + subaccountID のみが使用されたかのようにレコードセットを返します。

SqlCeConnection conn = new SqlCeConnection(Lib.ConnectionString);
string sql = "SELECT x_scaleid, x_weight, x_timestamp FROM x WHERE x_account_id = " + subaccountID
     + " AND (x_timestamp BETWEEN @start_date AND @end_date) ORDER BY x_timestamp DESC";
SqlCeCommand cmd = new SqlCeCommand(sql, conn);
cmd.Parameters.Add("@start_date", SqlDbType.DateTime, 8).Value = dFromFilter.Value.Date;
cmd.Parameters.Add("@end_date", SqlDbType.DateTime, 8).Value = dToFilter.Value.Date;
SqlCeDataAdapter da = new SqlCeDataAdapter();
da.SelectCommand = cmd;

オンラインで同じ問題を抱えている人を見つけることができなかったので、ちょっと行き詰まっています。たぶん、すべての日時を int に変換し、そのように保存する方がよいでしょう。日時型の操作は常に嫌いです。

誰かが尋ねる前に、'<' と '>' の使用、およびさまざまな CONVERT バリエーションを含む、さまざまなバージョンの句を試しました。

4

1 に答える 1