SQL-запрос для даты и времени - PullRequest
0 голосов
/ 02 ноября 2011
string date = DateTime.Now.AddDays(day - 1).ToShortDateString().ToString();
string count = "select count(*) from Appointment_Info where  APPT_Dt=\'" +
               Convert.ToDateTime(date) + "\'  ";
SqlCommand cc = new SqlCommand(count, cn);
int appoinments = Convert.ToInt16( cc.ExecuteScalar().ToString());

запрос выше не работает, пожалуйста, посмотрите и скажите, есть ли их проблемы?

Ответы [ 3 ]

2 голосов
/ 02 ноября 2011

То, что вам нужно, это такой SQL вместо:

DateTime dtFrom = DateTime.Now.AddDays(day - 1).Date;
DateTime dtTo = past.AddDays(1);
string strSQL = "Select Count(*) From Appointment_Info Where  APPT_Dt Between @from And @to";
int appoinments = 0;
using (SqlCommand cc = new SqlCommand(strSQL, cn))
{
    cc.Parameters.AddWithValue("@from", dtFrom);
    cc.Parameters.AddWithValue("@to", dtTo);
    appoinments = Int32.Parse(cc.ExecuteScalar().ToString());
}

Проблема в том, что вам не нужна точная дата, так как она вам ничего не даст, вам скорее нужно диапазон дат, означающих что-либо между прошедшей датой и днем ​​после нее.

Приведенный выше код также дает лучшую практику использования параметров и правильной утилизации объекта Command.

0 голосов
/ 02 ноября 2011

Попробуйте это:

DateTime dt = DateTime.Now.AddDays(day - 1);
SqlCommand cc = new SqlCommand(
    "SELECT COUNT(*) FROM Appointment_Info WHERE APPT_Dt=@dt", cn);
cc.Parameters.AddWithValue("@dt", dt);
0 голосов
/ 02 ноября 2011

Я думаю, что это решит вашу проблему:

    string date = DateTime.Now.AddDays(day - 1).ToShortDateString().ToString();
    string count = "select count(*) from Appointment_Info where  convert(int,convert(varchar, APPT_Dt,112))=convert(int,convert(varchar, @date,112)) ";

    SqlCommand cc = new SqlCommand(count, cn);
    cc.parameters.AddWithValue("@date",date);
    int appoinments = Convert.ToInt16( cc.ExecuteScalar().ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...