Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];

Вниз

Странности с датой в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.016 c
2-1148292355
deltav1
2006-05-22 14:05
2006.06.11
ModalResult


2-1148811227
И. Павел
2006-05-28 14:13
2006.06.11
Восстановление окна при двойном щелчке


2-1148245086
Adolf
2006-05-22 00:58
2006.06.11
Срочно нужна помощь!


2-1148566518
cardexc
2006-05-25 18:15
2006.06.11
Исключительная ситуация


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский