Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Странности с датой в MSSQL [D7, XP]


Megabyte ©   (2006-05-23 11:27:00) 

В запросе выдаются некорректные данные. Суть: в секции where условие на дату очень странно действует.
Все зависимости от того, что за дата там стоит, происходит следующее:
1) Если делать в условии поле D.DateDoc > или <> какой-либо дате, то выдает все записи, удволетворяющие остальным условиям;
2) Если D.DateDoc < или = какой-либо дате(хотя по запросу смотрю, что подобная дата существует), то выдает пустую запись.
Бред, конечно,какой-то. Причем использую Query Analizer.
Вот пример кода, кот. выдает все записи, удволетворяющие остальным условиям.
select D.Summa as prihod, D.DateDoc
from dbo.Documents D, dbo.Subdividings S
where (D.Debet = '50') and (D.SubcontoDt = S.IdKey) and
(S.Description = 'Белорусская') and (D.DateDoc > 2002-02-05 )
and (D.CurrencyKey = 2)


Есть только одно предположение: м.б. дело в формате данных? Я поле типа DateTime сравниваю с датой. Правда в поле DateDoc время везде выглядит так 00:00:00.000 Когда я в запросе писал так: (D.DateDoc > 2002-02-05 00:00:00.000), - запрос не проходил по причине: Line 4: Incorrect syntax near '00'.

з.ы. В чем может быть причина подобных глюков? :(


ЮЮ   (2006-05-23 12:26:00) [1]

2002-02-05 == 1995 -й день от  01 января 1900 года (+- несколько дней).
Вряд ли у тебя есть данные за то время. Сервер арифметику тоже неплохо знает.

в Query Analizer слелует писать
DECLARE @OnDate datetime
SET  @OnDate  = '20020205' / *5 февраля  '20020502' - 2 мая */

и далее в запросе использовать @OnDate

Отлаженный запрос делать параметрическим (@ меняем на :) и выполнять в Delphi


Megabyte   (2006-05-23 12:22:00) [2]


> Ega23 ©   (23.05.06 11:41) [1]
> D.DateDoc > '2002-02-05 00:00:00.000'?

Ой, спасибо. :)
А я не втыкаю, что за фигня творится. 2-й день мучаюсь. И хоть бы Query Analizer ругался бы, а то молча хавает без апострофов.


Megabyte   (2006-05-23 12:19:00) [3]


> Плохиш ©   (23.05.06 11:41) [2]

Млять. Какие параметры в Query Analizer?

Ega32, ща попробую.


Ega23   (2006-05-23 11:41:00) [4]

D.DateDoc > '2002-02-05 00:00:00.000 '
?


Плохиш   (2006-05-23 11:41:00) [5]


> Megabyte ©   (23.05.06 11:27)

Megabyte? Megabyte? У вас там, что весь детский сад под одним ником ходит?

Уж сколько раз твердили используй параметры


Наверх

Титульная страница Поиск, карта сайта Написать письмо