Как выполнить запрос на дату и время колонн - PullRequest
1 голос
/ 30 марта 2012

Пытаясь получить записи, передавая дату в том случае, если условие, я отправляю дату с помощью средства выбора даты и времени, но в конце программы чтения не отображаются никакие записи.

Я сделал преобразование даты и времени, так как Convert(char(10),ext_date,101) все еще сталкивается с той же проблемой.

string str=@"select * from extra_expense where CONVERT(char(10),ext_date,101) = @date";

sqlcommand = new SqlCommand(str,sqlconnection );
sqlcommand.Parameters.Add("@date", SqlDbType.DateTime).Value  = datetimepicker1.value);
datareader = sqlcommand.ExecuteReader();
List<Projects> projects = new List<Projects>();
while (datareader.Read())
{

     Projects proj = new Projects();
     proj.expenseid = Convert.ToInt32(datareader.GetValue(0));
     proj.ProjectDate = Convert.ToDateTime(datareader.GetValue(1));

     projects.Add(proj);

}
datareader.Close();
return projects;

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Вы можете указать даты в виде строк в T-SQL, например:

SELECT MyFields FROM MyTable
WHERE StartDate >= '01-01-00' AND StartDate <= '12-31-00'
0 голосов
/ 30 марта 2012

Вы не должны приводить поле в таблице, вы должны приводить параметр к правильному типу. Фактически, вы уже приводите его, потому что параметр объявлен как datetime, но по вашему запросу вы заставляете ext_date к char (10). Попробуйте это:

string str=@"select * from extra_expense where ext_date = @date";

вместе с

sqlcommand.Parameters.Add("@date", SqlDbType.DateTime).Value  = datetime.Parse( datetimepicker1.value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...