As followup to this question, everything was working when I was manually defining the dates like 2016-05-01
as strings/varchars. However, when I went to convert to datetime I'm now getting empty results again. This is the code as it stands:
log("Connecting to SQL Server...");
string connectionString = "DSN=HSBUSTEST32;";
// Provide the query string with a parameter placeholder.
string queryString = "SELECT COUNT(*) FROM Table WHERE myDateTime >= ? AND myDateTime < ?";
// Specify the parameter value.
DateTime startDate = DateTime.Now;
DateTime endDate = startDate.AddHours(-1);
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
// Create the Command and Parameter objects.
OdbcCommand command = new OdbcCommand(queryString, connection);
command.Parameters.Add("@startDate", OdbcType.DateTime).Value = startDate;
command.Parameters.Add("@endDate", OdbcType.DateTime).Value = endDate;
try
{
connection.Open();
OdbcDataReader reader = command.ExecuteReader();
while (reader.Read())
{
log(reader[0].ToString());
}
reader.Close();
}
catch (Exception ex)
{
log(ex.Message);
}
}
Again, if I were to replace the following:
DateTime startDate = DateTime.Now;
DateTime endDate = startDate.AddHours(-1);
with
string startDate = "2016-08-23";
string endDate = "2016-08-24";
And then change the OdbcType
to VarChar
everything works fine.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…