Я использую C# для выполнения запроса на SQL-сервер. Запрос должен быть между 2 отметками времени (дата и час). Проблема в том, что если я поставлю дату только (2015-04-15), она работает, но если я положу время (2015-04-15 16:00:00), она больше не работает и покажет ошибку: «Близко к» 16 'Синтаксис неверен. "Запрос SQL с отметкой времени
Я пробую разные вещи, но я не могу найти способ.
Вот мой код:
DateTime Endtime = Convert.ToDateTime(DateTime.Now.Date.ToString("d") + " " + DateTime.Now.AddHours(1).Hour.ToString("00") + ":00:00");
DateTime Starttime = Convert.ToDateTime(DateTime.Now.Date.ToString("d") + " " + DateTime.Now.Hour.ToString("00") + ":01:00");
string time = string.Empty;
SqlConnection sqlCon = new SqlConnection("...");
sqlCon.Open();
SqlCommand sqlCmd = new SqlCommand("SELECT COUNT(TimeStamp) FROM net WHERE Timestamp BETWEEN " + Starttime.ToString("yyyy-MM-dd hh:mm:ss") + " AND " + Endtime.ToString("yyyy-MM-dd hh:mm:ss"), sqlCon);
SqlDataReader reader = sqlCmd.ExecuteReader(); //Error comes from here
while (reader.Read())
{
time = reader[0].ToString();
}
Console.WriteLine(time);
Есть ли у вас какие-либо идеи, чтобы сделать это?
Использование SQL Date Casting в вашем запросе – Jankya
Или просто добавьте одинарные кавычки по датам 'WHERE Timestamp BETWEEN '" ... ' –
Также, чтобы быть уверенным:' TimeStamp' имеет тип 'DateTime' в базе данных, да? – DWright