Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как от одной даты отнять другую дату? / 13 сообщений из 13, страница 1 из 1
04.09.2003, 17:59
    #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
04.09.2003, 18:40
    #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
05.09.2003, 11:10
    #32256697
Bohdan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как от одной даты отнять другую дату?
KiLLun
спасибо за совет
я скачал rfunc.dll и у меня такое ощущение, что я не правильно наклыдываю path, есть так же инсталяшка но она за рарина паролем
у меня interbase 5.6 win2k и win2k server(ОС на разных машинах)
что можешь посоветовать
сенк
...
Рейтинг: 0 / 0
05.09.2003, 11:36
    #32256738
gep
gep
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как от одной даты отнять другую дату?
Таже проблема!!! Пытаюсь считать оплату по тарифу прям в базе, но нужна разница в днях, часах и минуту. Написал свою ЮДФку которая кроме того расчитывает все остальное (т.е. вроде как быстро все должно быть), при подключении там где компилил - все ОК. А на других компах ложу все также (в папку ЮДФ внутри Жарптицы) и все говорит ошибочный БЛР какой-то. Это меня уже достало. Пробовал подключить еще раз, но тот же результат. Даже в чистой новой базе. Как вообще подключать ЮДФки правильно? (не в смысле каким скриптом, а куда лучше ложить и как сервак доп. настраивать).
...
Рейтинг: 0 / 0
05.09.2003, 12:00
    #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
05.09.2003, 14:40
    #32257091
KiLLun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как от одной даты отнять другую дату?
>to Bohdan
Если скачал с Ibase
rfunc.zip то почитай там в Doc описание работы.
...
Рейтинг: 0 / 0
05.09.2003, 14:43
    #32257097
KiLLun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как от одной даты отнять другую дату?
>to Bohdan
Напиши конкретнне в чем теперь проблема? Если знаю - подскажу.
Be Well...
...
Рейтинг: 0 / 0
05.09.2003, 15:12
    #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
05.09.2003, 16:23
    #32257260
vovan1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как от одной даты отнять другую дату?
а если так

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

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

спасибо, все клево, все работае
спасибо всем
...
Рейтинг: 0 / 0
10.09.2003, 12:29
    #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
10.09.2003, 12:41
    #32261055
Acue
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как от одной даты отнять другую дату?
дата-дата=Integer (количество дней между датами)

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


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