Главная страница
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.043 c
15-1147688857
07BB
2006-05-15 14:27
2006.06.11
XML+Java


15-1147820909
iZEN
2006-05-17 03:08
2006.06.11
Кто-нибудь пробовал десктопную FreeBSD?


15-1148043039
Nikolga
2006-05-19 16:50
2006.06.11
Ищем программиста Delphi


2-1148281767
deltav1
2006-05-22 11:09
2006.06.11
параллелизм


1-1146903757
Stanislav
2006-05-06 12:22
2006.06.11
Прочитать словарь из MS Office