DBF ファイルがあり、C# コードから読み取ろうとしています。条件を適用したり、varchar 型フィールドに条件を適用したりしなくても、ファイルを正常に読み取ることができます。私の問題は、日付フィールド (type:date) からレコードをフィルター処理する必要があることです。私は次の方法を試しました、
SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between 2/16/2006 12:00:00 AM and 2/20/2006 12:00:00 AM
上記の構文エラー: 演算子がありません
SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between '2/16/2006 12:00:00 AM' and '2/20/2006 12:00:00 AM'
上記はデータ型の不一致エラーを返します
SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between 2/16/2006 and 2/20/2006
上記は例外をスローしませんが、一致するレコードがあってもレコードを返しません。
同じことが where 句でも起こります。範囲からレコードをフィルタリングするにはどうすればよいですか
私はそれを読むために次のコードを使用しています
OdbcCommand cmd = new OdbcCommand();
OdbcDataAdapter da = new OdbcDataAdapter();
DataTable dt = new DataTable();
using (OdbcConnection connection = new OdbcConnection(connstring))
{
connection.Open();
cmd = new OdbcCommand(@"SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between 2/16/2006 12:00:00 AM and 2/20/2006 12:00:00 AM", connection);
cmd.CommandType = CommandType.Text;
da.SelectCommand = cmd;
da.Fill(dt);
}