![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Странности с датой в 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? У вас там, что весь детский сад под одним ником ходит?
Уж сколько раз твердилииспользуй параметры