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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DateTime, как в запросе указать дату 
:(
    Опции темы
Чердак
  Дата 3.12.2008, 05:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 8.12.2004

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



Доброе время суток.
запрос для  MS SQL Server 2005:
Как работать с датой?
Код

Select SW.IDStage, Count(SW.IDStage) AS KolvoStage, SW.Status
 From Manager M, TypeWork TW, StagesWork SW, Works W
 WHERE M.ID = SW.IDManager and TW.ID = W.IDTypeWork and W.ID = SW.IDWork and 
M.ID= 8 and W.IDTypeWork = 1 and (W.DateReg >= '25.11.08' or SW.Status = 0)
 Group by  M.Name1, TW.NameType, SW.IDStage, SW.Status


Ошибка:
Msg 242, Level 16, State 3, Line 1
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
--------------------
PM MAIL   Вверх
ТоляМБА
Дата 3.12.2008, 06:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


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

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



Цитата(Чердак @  3.12.2008,  07:15 Найти цитируемый пост)
out-of-range datetime value.

Замени
Цитата(Чердак @  3.12.2008,  07:15 Найти цитируемый пост)
'25.11.08'
на '11/25/2008'

PM   Вверх
Deniz
Дата 3.12.2008, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

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



Чердак, MSSQL так же хорошо понимает формат 'YYYYMMDD' т.е. '20081125' как дату.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
comtat
Дата 3.12.2008, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

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



нужно привести форматы дат к одному виду
Вот функции для работы с датой и временем


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
Чердак
Дата 4.12.2008, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 8.12.2004

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



 smile  Спасибо всем работает вот так:
 
Код

Select SW.IDStage, Count(SW.IDStage) AS KolvoStage, SW.Status
 From Manager M, TypeWork TW, StagesWork SW, Works W
 WHERE M.ID = SW.IDManager and TW.ID = W.IDTypeWork and W.ID = SW.IDWork and 
M.ID= 8 and W.IDTypeWork = 1 and (W.DateReg >= '20081125' or SW.Status = 0)
 Group by  M.Name1, TW.NameType, SW.IDStage, SW.Status

 или так:
Код

Select SW.IDStage, Count(SW.IDStage) AS KolvoStage, SW.Status
 From Manager M, TypeWork TW, StagesWork SW, Works W
 WHERE M.ID = SW.IDManager and TW.ID = W.IDTypeWork and W.ID = SW.IDWork and 
M.ID= 8 and W.IDTypeWork = 1 and (W.DateReg >= 25/11/08 or SW.Status = 0)
 Group by  M.Name1, TW.NameType, SW.IDStage, SW.Status

--------------------
PM MAIL   Вверх
Чердак
Дата 4.12.2008, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 8.12.2004

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



Возник другой вопрос а как  вы вести все поля с датой меньшей или большей указанной при моем запросе он мне все выдает, хотя это неправильно, если поставить знак меньше, то ничего не выдает smile 
--------------------
PM MAIL   Вверх
Veroonya
Дата 10.12.2008, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 10.10.2008
Где: Россия, Омск

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



Ты учитывай, что при задании дата она задается дата+время, где время=00:00:00
Может просто у тебя в базе дата идет вместе со временем и именно ВРЕМЯ не попадает в заданное значение.
Например, ты пишешь select date_time from a where date_time>'1/1/2008'
Получается ты сравниваешь 1.1.2008 00:00:00, 
а в базе допустим хранится 1.1.2008 12:20:00
Получается, оно выбирается тоже, но с точки зрения ДАТЫ это неправильно
PM MAIL ICQ   Вверх
Чердак
Дата 10.12.2008, 06:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 8.12.2004

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



 Veroonya , smile  угу верно, исправил!
--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




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


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

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