Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

Странности с датой в MSSQL   Найти похожие ветки 

 
Megabyte ©   (2006-05-23 11:27) [0]

В запросе выдаются некорректные данные. Суть: в секции 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".

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


 
Ega23 ©   (2006-05-23 11:41) [1]

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


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


> Megabyte ©   (23.05.06 11:27)

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

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


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


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

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

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


 
Megabyte ©   (2006-05-23 12:22) [4]


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

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


 
ЮЮ ©   (2006-05-23 12:26) [5]

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

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

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

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



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
2-1148297951
Николай Владимирович
2006-05-22 15:39
2006.06.11
=> Странная штука с TreeView, не проходи мимо


2-1148578524
Firefly
2006-05-25 21:35
2006.06.11
packed record


2-1148307879
Бегин
2006-05-22 18:24
2006.06.11
Операции со строками в текстовом файле


4-1136633780
workdisk450
2006-01-07 14:36
2006.06.11
Как использовать нестандартный шрифт, не устанавливая его?


1-1146564914
Still Swamp
2006-05-02 14:15
2006.06.11
Экспортируемая функция в EXE