powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поиск по полю TIMESTAMP
20 сообщений из 20, страница 1 из 1
Поиск по полю TIMESTAMP
    #38424099
poison1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите, не могу понять в чем проблема...
Вроде раньше такая схема работала, не пойму что изменилось :(
Пишу процедуру:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
begin
  for
     select r.id_sklad,sum(r.kol) as kol,date_add
     from rashod_memo rm, rashod r
     where
         rm.id=r.id and rm.locate=2
     group by id_sklad, date_add
     into :id_sklad,:kol,:date_add
  do
    begin
      select kol,date_add from price where date_add=:date_add
      into :kol_price,:date_add2;
    end
end


Ни чего не находит!
:kol_price,:date_add2 - пустые.
Проверял поля, и в той и в этой таблице, они одинаковые:
AsTimeStamp: 04.07.2013 18:06:56
As Float: 41459,7548239468

Если пишу так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
begin
  for
     select r.id_sklad,sum(r.kol) as kol,date_add
     from rashod_memo rm, rashod r
     where
         rm.id=r.id and
         rm.locate=2
     group by id_sklad, date_add
     into :id_sklad,:kol,:date_add
  do
    begin
      date_add3=date_add+0.00001157407;
      select kol,date_add from price where date_add>=:date_add and date_add<=:date_add3 and locate=2
      into :kol_price,:date_add2;
      suspend;
    end
end


То все находит!
:kol_price,:date_add2 - заполняются нужными данными.
Поля date_add и date_add2 одинаковые - 04.07.2013 18:06:56 - 41459,7548239468

Почему не ищет??? Поля одинаковые же.... :(
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424112
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poison1977,

покажи типы полей и параметров процедуры. Укажи версию сервера и диалект.
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424118
poison1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Сервер: firebird-server-2.5.2_1
Диалект: 3

Код: sql
1.
2.
CREATE DOMAIN TYP_TIMESTAMP AS
TIMESTAMP;



Код: sql
1.
2.
CREATE DOMAIN TYP_NUMERIC AS
NUMERIC(15,2);



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create or alter procedure "NEW_PROCEDURE"
as
declare variable ID_SKLAD TYP_INTEGER;
declare variable KOL TYP_NUMERIC;
declare variable DATE_ADD TYP_TIMESTAMP;
declare variable DATE_ADD2 TYP_TIMESTAMP;
declare variable DATE_ADD3 TYP_TIMESTAMP;
declare variable KOL_PRICE TYP_INTEGER;
begin
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424127
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poison1977,

наверное потому что в первом случае ты пропустил suspend
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424139
Dmitry Kurbsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо это, либо микросекунды.
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424179
poison1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sespend тоже не помогает
ни чего не выводит!
микросекунд там тоже не должно быть!!!

Значение обоих полей в разных форматах:
AsTimeStamp: 04.07.2013 18:06:56
As Float: 41459,7548239468

Поле было вставлено из одной таблицы в другу, ни каких микросекунд добавится не должно было! :(
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424190
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poison1977,

В IBE есть такая замечательная штука как отладчик ХП. Попробуй пройтись им и посмотреть промежуточные переменные.
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424203
poison1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисpoison1977,

В IBE есть такая замечательная штука как отладчик ХП. Попробуй пройтись им и посмотреть промежуточные переменные.

Ей и проверяю! Как раз из отладчика и беру значения переменных! Они идентичны! Но почему-то не ищутся :(

date_add:
AsTimeStamp: 04.07.2013 18:06:56
As Float: 41459,7548239468

date_add2
AsTimeStamp: 04.07.2013 18:06:56
As Float: 41459,7548239468

Как видно из значения Флоат число одинаковое, значит разницы в микросекундах нет :(
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424236
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, тут сказываются особенности хранения флоат?
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424303
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poison1977микросекунд там тоже не должно быть!!!
"Не должно быть" и "нет" - две большие разницы. Если в IBExpert'е поставить в Environment Options\Grid\Display formats\DateTime fields строку dd.mm.yyyy hh:mm:ss.zzz, то что будет в этом поле?
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424316
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poison1977,

А если
where date_add=:date_add
заменить на
where date_add betwen dateadd(-1 second to :date_add) and dateadd(1 second to :date_add)
?
И если все заработает, тогда почитать что-то о сравнении вещественных чисел.
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424327
Dzirt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poison1977...
микросекунд там тоже не должно быть!!!

Значение обоих полей в разных форматах:
AsTimeStamp: 04.07.2013 18:06:56
As Float: 41459,7548239468
И таки они там есть. Вот простейший код:
Код: sql
1.
2.
    TDateTime date = 41459.7548239468;
    String s = FormatDateTime( "dd.mm.yyyy hh:mm:ss.zzz", date );


В переменной s будет строка "04.07.2013 18:06:56.789"
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424336
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poison1977Как видно из значения Флоат число одинаковое
В пределах выводимой точности оно одинаковое. А ты количество выводимых цифр после
запятой-то увеличь, не жмоться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424409
poison1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не очень понимаю как в поле могли изменяться миллисекунды!

Поле вставлялось:
insert into add (kol,date_add) values (1,'now');

И копировалось в другую таблицу:
insert into price (kol,date_add) select kol,date_add from add

Как могут в поле поменяться миллисекунды?
Не понимаю... :((
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424417
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poison1977Не понимаю... :((
А я не понимаю где в этом твоём коде место float.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424451
poison1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Все поля в TIMESTAMP!
Переводя во флоат, я пытался их сравнить!
Данные взяты из трассировщика IBE
при трассеровке переменная date_add содержит дату, и если щелнуть по значению там есть переконвертация во флоат!
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424453
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poison1977Все поля в TIMESTAMP!
Переводя во флоат, я пытался их сравнить!
И совершенно зря. TIMESTAMP это два точных целых числа. Float это приближённое число с
плавающей запятой. Как уже сказали: или используй isql, или выставь в IBExpert формат
времени с микросекундами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424658
Dmitry Kurbsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poison1977Вроде раньше такая схема работала, не пойму что изменилось
poison1977Поле вставлялось:
insert into add (kol,date_add) values (1,'now');
До 2.0 'now' выдавал дату и время с точностью до секунды, а с 2.0 - с точностью до миллисекунды.
Может быть "раньше" - это на 1.5 было?
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424795
poison1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Всем кто откликнулся!

Обновил все поля TIMESTAMP из исходной таблицы, удалил процедуру и написал ее заново.
Сделал Бэкап-Ресторе...
И вуаля :) Вроде работает!
...
Рейтинг: 0 / 0
Поиск по полю TIMESTAMP
    #38424804
poison1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Kurbsky,

Раньше - это было на этом же сервер!
После Бэкап-рестре, работает!
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поиск по полю TIMESTAMP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]