powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как от одной даты отнять другую дату?
13 сообщений из 13, страница 1 из 1
Как от одной даты отнять другую дату?
    #32256281
Bohdan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
Надеюсь поможете.
Как от одной даты отнять другую дату и получить разницу в днях?
table
Код: plaintext
1.
2.
3.
Date    client          summ
 29 . 08 . 03      vasia            2455 
 30 . 08 . 03      petia            1433 
 31 . 08 . 03      sidorov         2463 


допустим сегодня 4.09.03
должно получится
Код: plaintext
1.
2.
3.
days
 6 
 5 
 4 


я делаю так
Код: plaintext
1.
2.
3.
4.
select date,
         client, 
         summ,
         'today(или now)' - date days 
from table  


проблема в том,что в таблице(table) дата в таком формате
Код: plaintext
 31 . 08 . 03 : 00 . 00 


и поле days получается таким
Код: plaintext
1.
2.
3.
days
 6 . 0000 
 5 . 0000 
 4 . 0000 


сенк
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32256330
Фотография KiLLun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi!
Если есть rfunc.dll - подключи функцию DateToStr. Далее попробуй так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 
select date,

         client, 

         summ,

datetostr(now,'%d') - datetostr(date days,'%d') 

from table  

У меня такой запрос вычитал из дня даты число 2:
Код: plaintext
1.
select cast(datetostr(cast(ival as date),'%d') as integer)- 2  from pvalues where objectind= 1517  and ind= 307 

Be Well...
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32256697
Bohdan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KiLLun
спасибо за совет
я скачал rfunc.dll и у меня такое ощущение, что я не правильно наклыдываю path, есть так же инсталяшка но она за рарина паролем
у меня interbase 5.6 win2k и win2k server(ОС на разных машинах)
что можешь посоветовать
сенк
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32256738
gep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gep
Гость
Таже проблема!!! Пытаюсь считать оплату по тарифу прям в базе, но нужна разница в днях, часах и минуту. Написал свою ЮДФку которая кроме того расчитывает все остальное (т.е. вроде как быстро все должно быть), при подключении там где компилил - все ОК. А на других компах ложу все также (в папку ЮДФ внутри Жарптицы) и все говорит ошибочный БЛР какой-то. Это меня уже достало. Пробовал подключить еще раз, но тот же результат. Даже в чистой новой базе. Как вообще подключать ЮДФки правильно? (не в смысле каким скриптом, а куда лучше ложить и как сервак доп. настраивать).
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32256796
Дятел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из хелпа по IB:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 To specify a location for UDF libraries in a configuration file, enter a line of the   following form for Windows platforms:

EXTERNAL_FUNCTION_DIRECTORY D:\Mylibraries\InterBase

For UNIX and NetWare, the line does not include a drive letter:

EXTERNAL_FUNCTION_DIRECTORY \Mylibraries\InterBase



писал:
при подключении там где компилил - все ОК. А на других компах ложу все также (в папку ЮДФ внутри Жарптицы) и все говорит ошибочный БЛР какой-то. Это меня уже достало. Пробовал подключить еще раз, но тот же результат. Даже в чистой новой базе. Как вообще подключать ЮДФки правильно? (не в смысле каким скриптом, а куда лучше ложить и как сервак доп. настраивать).

Проверь, не требует ли твоя DLLлина каких нибудь других DLLлин и еще проверь EXTERNAL_FUNCTION_DIRECTORY (см. выше)
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32257091
Фотография KiLLun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>to Bohdan
Если скачал с Ibase
rfunc.zip то почитай там в Doc описание работы.
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32257097
Фотография KiLLun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>to Bohdan
Напиши конкретнне в чем теперь проблема? Если знаю - подскажу.
Be Well...
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32257149
Bohdan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне новерно нужно сделать компиляцию redme.txt вычитал
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Для Windows:

 1 . Установить один из компиляторов Borland C++.
 2 . Развернуть архив с библиотекой в какую-нибудь папку.
 3 . Открыть папку source.
 4 . Отредактировать make-файл makefileN.win: прописать путь к IB (ключ IBASE), к С++ (BCDIR), к системной папке Windows (SYSDIR).
 5 . Собрать библиотеку командой
     <папка BC++>\bin\make -f makefileN.win all

Компиляция тестировалась на Free Borland C++ Compiler  5 . 5  под Windows  2000  Pro SP1.

а потом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
С дистрибутивом поставляется скомпилированная библиотека rFunc только для IB6. Для других версий IB необходимо самостоятельно скомпилировать ее или, став зарегистрированным пользователем, получить ее от нас.

Для Windows:

 1 . Файл RFUNC.DLL необходимо переписать в папку
   вариант  1 : <Путь IB>\Bin (для IB6 - <Путь IB>\UDF), где <Путь IB> - путь к папке, в которой установлен Interbase (рекомендуется).
   вариант  2 : Windows\System (для Windows 9x) или WinNT\System32 (Windows NT, 2k).
 2 . только для IB  5 .x: скопировать файл ib_util.dll из <Путь IB>\Lib в <Путь IB>\Bin.

Если на одном компьютере установлено несколько версий серверов Interbase, необходимо использовать библиотеку rFunc, соответствующую установленному клиенту IB (GDS32.DLL).
Рекомендуется перед запуском сервера Interbase заменять GDS32.DLL на соответствующую версии сервера.


скорее вот, что мне сейчас нужно - Free Borland C++ Compiler 5.5 под Windows 2000
или я заблуждаюсь
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32257260
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если так

select cast('today' - DateOnly as integer)
from T

у меня вроде получилось все нормально
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32257283
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В IB c 6-ой версии и выше:
select current_date-date_field from table
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32258058
Bohdan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>to vovan1

спасибо, все клево, все работае
спасибо всем
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32261024
VictorKr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да дата1 - дата2 это клево, но если нужно с такой вешью сделать вычислимое поле.. Там проблема - поле становиться не дата а numeric типа:(

ALTER TABLE test
ADD sum1 COMPUTED BY (
(select sum(date) from document
where document.test_id = test.test_id))

Поле sum1 сосем не дата. Кто может сталкивался? Как побороть, подскажите..
...
Рейтинг: 0 / 0
Как от одной даты отнять другую дату?
    #32261055
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дата-дата=Integer (количество дней между датами)

А что ты хочешь получить складывая даты?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как от одной даты отнять другую дату?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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