как просмотреть запись в диапазоне дат? - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть записи в моей таблице Тест как этот мой столбец Дата типа varchar.

Fname      Lname      Date  
vivek      parikh     01-09-2011 10:00:00 PM  
kashyap    vyas       02-09-2011 10:50:00 AM  
viral      panchal    02-09-2011 10:00:00 PM  
Arpit      Gosai      03-09-2011 10:00:00 PM  
Darshit    Chokshi    04-09-2011 10:00:00 PM  
Sameer     Rangrez    24-08-2011 9:15:12 AM  

Я хочу получить записи в диапазоне дат(дата начала и окончания) со страницы.

мой код

 DateTime time = DateTime.Today;             // Use current time
    string format = "MM-dd-yyyy";

    SqlCommand cmd = new SqlCommand("select Fname,Lname,Insert_Date from Test where Insert_Date >= '" + Convert.ToDateTime(TextBox1.Text).ToString(format) + "' and Insert_Date <= '" + Convert.ToDateTime(TextBox2.Text).ToString(format) + "'  ", con);
    DataSet ds = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds);

    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
    {
        Response.Write(ds.Tables[0].Rows[i]["Fname"].ToString());
        Response.Write(ds.Tables[0].Rows[i]["Lname"].ToString());
        Response.Write(ds.Tables[0].Rows[i]["Insert_Date"].ToString()+"<br>");
    }

Ответы [ 5 ]

1 голос
/ 25 ноября 2011

для построения вашего запроса используйте Convert (datetime, fieldname, 103) для преобразования varchar в datetime.

Ваш запрос должен быть примерно таким.

выберите * из теста где Преобразовать (datetime, field_date, 103)> = '2011-01-01' - дата начала

и Преобразовать (datetime, field_date, 103) <= '2012-01-01' </strong>; - дата окончания

Вот так должен выглядеть ваш оператор C # (он должен включать 103 код для указания формата даты, который дд-мм-гггг

 SqlCommand cmd = new SqlCommand("select Fname,Lname,Insert_Date from Test where Convert(datetime,Insert_Date,103) >= '" + Convert.ToDateTime(TextBox1.Text).ToString(format) + "' and Convert(datetime,Insert_Date,103) <= '" + Convert.ToDateTime(TextBox2.Text).ToString(format) + "'  ", con);
0 голосов
/ 28 ноября 2011

Следующий оператор sql был протестирован на нашем сервере SQL Server 2008 и работает нормально.

SELECT *
FROM some_table
WHERE date_field >= '2011-10-25' and date_field <= '2011-11-26'
0 голосов
/ 25 ноября 2011

выберите * из теста, где Дата> = '2011-09-02' и Дата <'2011-0-04' </p>

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

Проверьте оператор SQL МЕЖДУ .Также убедитесь, что вы правильно форматируете даты, используя стандартный формат SQL Server, чтобы избежать и избежать путаницы: ггггммдд ччммсс, и не забывайте также учитывать временную часть даты.

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

ВЫБЕРИТЕ имя от имени таблицы, ГДЕ somecol> = '2011-01-09' И somecol <= '2011-09-24' </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...