Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сравнение в SQL запросе, сравнение дат 
V
    Опции темы
Chef
Дата 1.6.2008, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 7.12.2007
Где: РК Павлодар

Репутация: нет
Всего: нет



В SQL запросе
Код

.....
WHERE имяполя > 12.06.1955

Выдает ошибку: не совметимый тип данных, пробовал и с кавычками и без, результата ноль.
Я так думаю что то не так в моем коде. 

Это сообщение отредактировал(а) Chef - 1.6.2008, 12:41
--------------------
Разговоры об IT
PM MAIL WWW   Вверх
jonie
Дата 1.6.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



дата обычно указаывается в формате'yyyyMMdd'
хотя смотря какая судб.
и при чем тут .net?

Это сообщение отредактировал(а) jonie - 1.6.2008, 13:20


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Chef
Дата 1.6.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 7.12.2007
Где: РК Павлодар

Репутация: нет
Всего: нет



Ну в студии же пишу...
Сюда и обращаюсь......
--------------------
Разговоры об IT
PM MAIL WWW   Вверх
jonie
Дата 1.6.2008, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



а как связаны .NET, студия и язык SQL ?  smile 


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Chef
Дата 1.6.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 7.12.2007
Где: РК Павлодар

Репутация: нет
Всего: нет



Насколько я понимаю, то что прокатит в чистом SQL не пройдет в команде, запросе от студии.
--------------------
Разговоры об IT
PM MAIL WWW   Вверх
Chef
Дата 1.6.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 7.12.2007
Где: РК Павлодар

Репутация: нет
Всего: нет



Короче когда будете делать в запросе сравнение по датам, то что бы все было ОК нужно дату оформлять вот так:
Код

#dd/mm/yyyy#

Тогда все будет нормально. Еденственное что я не понял, почему он не включает в резултат, записи которые находяться на границе диапазона дат. Хотя в условии указаны <=,>=

--------------------
Разговоры об IT
PM MAIL WWW   Вверх
Magnifico
Дата 1.6.2008, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 2
Всего: 17



для sql server имеет значение формат передаваемой даты
'yyyyMMdd'  он понимает всегда правильно ( не зависимо  от настроек сервера)

WHERE имяполя > '12.06.1955' т.е формат dmy
serever не может переконвертировать в дату (зависит от настроек сервера)

вот так обработается правильно:
Код

SqlConnection con = new SqlConnection("Server=localhost;Database=study2;Trusted_Connection=True;");
            con.Open();
            SqlCommand com = new SqlCommand();
            com.CommandType = CommandType.Text;  
//---придется менять формат на время сессии --------------------//
            com.CommandText = @"set dateformat dmy";
            com.Connection = con;
            com.ExecuteNonQuery();
//---------------------------------------------------------------------------------//
            com.CommandText = @"select * from Clients where curdate > '12.06.1955'" ;
            com.Connection = con;
            SqlDataReader rdr = com.ExecuteReader();
            while (rdr.Read())
            {
                Console.WriteLine(rdr["curDate"].ToString());
            }


но лучше всегда
 
Код

com.CommandText = @"select * from Clients where curdate > '19550612'" ;

http://www.sql.ru/faq/faq_topic.aspx?fid=109


Это сообщение отредактировал(а) Magnifico - 1.6.2008, 18:44


--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
Chef
Дата 1.6.2008, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 7.12.2007
Где: РК Павлодар

Репутация: нет
Всего: нет



Magnifico
спасибо, оч интеречный вариант
--------------------
Разговоры об IT
PM MAIL WWW   Вверх
jonie
Дата 1.6.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



Цитата(Chef @ 1.6.2008,  16:52)
Короче когда будете делать в запросе сравнение по датам, то что бы все было ОК нужно дату оформлять вот так:
Код

#dd/mm/yyyy#

а ты в след раз когда пишешь пиши и СУБД какую используешь.. ато акцесс ли у тебя, или sqlite, никто не знает.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.