Форум: "Базы";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
ВнизSQL запрос, бд-MS Access, по времени Найти похожие ветки
← →
vantage10 (2003-06-06 13:58) [0]Я уже писал тоже самое по дате
( http://delphimaster.net/view/3-1053873893/)
Теперь возник тот же самый вопрос по времени.
Время (WHERE Int(DateField)=#18:00:00#) подобно дате (WHERE Int(DateField)=#04/03/2003#)
не заработало.
← →
sniknik (2003-06-06 14:36) [1]похоже ты чешеш левой пяткой правое ухо, сначала разделяеш потом сравниваеш. зачем? почему не сразу.
по вопросу. вот так должно получится (все даты с 6 часами ровно)
WHERE DateField-Int(DateField)=#30/12/1899 18:00:00#
← →
sniknik (2003-06-06 15:10) [2]не не получается :(, вмешивается погрешность в разрядной сетке(а может это милисекунды неучтенные), чтобы избавится от последних разрядов нужно тогда так.
WHERE Round(DateField-Int(DateField), 10) = Round(#30/12/1899 02:00:00#,10)
(проще по задаче смотреть, лутше и точнее будет использовать временные функции, Hour, Minute, Second)
← →
vantage10 (2003-06-07 16:23) [3]Странно, но не получилось
← →
sniknik (2003-06-07 16:34) [4]vantage10 (07.06.03 16:23)
сделай так
SELECT Round(DateField-Int(DateField), 16), Round(#30/12/1899 02:00:00#,16) FROM TableName
и посмотри на разницу глазами. время это же дробная часть числа, а такие числа плохо сравнивать. иногда (с некоторыми числами) не проходит даже
Fl: Double;
Fl:= 0.0357;
if Fl = 0.0357 then begin
end;
и условие ложное получается, изза этой самой разрядной сетки, переменная на самом деле будет содержать 0,0356565656475 (чтото типа этого, не обязательно это число конечно это я так, просто есть такие, сдесь обсуждалось)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c