Форум: "Базы";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
ВнизТип Date в IB Найти похожие ветки
← →
KIR (2003-04-14 20:42) [0]Народ в чем вилы? Есть таблица условно состоящая из двух полей Dat (TDate) и MyField (Integer), пользуюсь компонентами FIBPlus, пишу следующий запрос:
SELECT
*
FROM
myTable
WHERE
Dat = :Param1
В таблице 100% есть запись с сегодняшним числом.
Далее:
MyDS.CLose;
MyDS.ParamByName("Param1").AsDate := Date;
MyDS.Open;
результат - пустой НД.
Как-только меняю запрос на такой:
SELECT
*
FROM
myTable
WHERE
Dat >= :Param1
Все работает. В чем секрет?
← →
Sergey Masloff (2003-04-14 21:16) [1]Ну, судя по всему у тебя в Dat дата и время. A Date() возвращает только дату, одним словом на время 0:00. Соответственно 14.04.02 10:00 >= 14.004.02 0:00
← →
KIR (2003-04-14 21:18) [2]Вот, кстати, что еще обнаружил: с базой работают несколько разных приложений. Так вот они используют одну и ту же ХП, которая как раз и делает Insert/Update таблицы с датой. Так вот из одного приложения дата вводится так: 14.04.03 0:24:42, а из другого так: 14.04.03. Время мне совсем не нужно, мне надо оставить только дату, как во втором примере. Народ, как обойти?
← →
KIR (2003-04-14 21:19) [3]>Sergey Masloff
Ну да, но тип поля-то Date, а не DateTimeStamp...
← →
Sergey Masloff (2003-04-14 21:35) [4]KIR © (14.04.03 21:19)
>Sergey Masloff
>Ну да, но тип поля-то Date, а не DateTimeStamp...
А диалект 3?
Насчет приложений разных: одно их приложений делает видимо Trunc для отбрасывания времени.
← →
KIR (2003-04-14 22:07) [5]Диалект 1. Я уже догнал до Trunc, только приложение его не делает. Я сам ручками во всех приложения прописал Round(Date) и все стало ОК. Хорошо, что во обоих приложениях текущая дата - это глобальная переменная, которая определяется при загрузке, а до бы я долгооооо искал все места, где нужно ее использовать :)
← →
Sergey Masloff (2003-04-14 22:32) [6]KIR ©
В диалекте 1 Date это то, что в 3 называется TimeStamp то есть дата и время. В 3 диалекте Date это только дата.
← →
Sergey Masloff (2003-04-14 22:36) [7]KIR ©
Round(Date) - это плохо. Тебе нужно не округлять а отбрасывать дробную часть, что с успехом сделает Trunc. Round же тебе и до следующего дня округлит в легкую.
← →
KIR (2003-04-15 10:14) [8]Спасибо, что-то я про Round не подумал...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c