powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Минимальное из двух timestamp-ов
8 сообщений из 8, страница 1 из 1
Минимальное из двух timestamp-ов
    #32073229
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди добрые, помогите!
Можно ли без udf получить следующее:
select min(f1_timestamp, f2_timstamp) from t1 ?
Если нельзя, то где взять такие udf под Win и Linux ?
Или может есть возможность преобразовать, что-то вроде
cast(f_timestamp as double precision), чтобы воспользоваться udf min, max для соответствующего типа ?
...
Рейтинг: 0 / 0
Минимальное из двух timestamp-ов
    #32073330
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет. А его и ненадо преобразовывать - оно и есть DOUBLE PRECISSION :-).
...
Рейтинг: 0 / 0
Минимальное из двух timestamp-ов
    #32073482
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, но вот у меня функция из FUDLibrary:
function absdbl double precision returns double precision by value.
Можно ли ее использовать с Timestamp-ами ?
Я пробовал, ничего не получилось.

DECLARE EXTERNAL FUNCTION "mindbl" TIMESTAMP,TIMESTAMP
RETURNS DOUBLE PRECISION BY VALUE /* TIMESTAMP BY VALUE возвращать нельзя */
ENTRY_POINT 'fudlib_mindbl' MODULE_NAME 'fudlib'

функция выдает 0

Извините, если спрашиваю глупости...
...
Рейтинг: 0 / 0
Минимальное из двух timestamp-ов
    #32073514
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция конечно:
function mindbl double precision, double precision returns double precision by value
...
Рейтинг: 0 / 0
Минимальное из двух timestamp-ов
    #32073532
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказалось функцию применить все-же можно, но у меня это выглядит так
Declare external function "mindbl" DOUBLE PRECISION, DOUBLE PRECISION
returns DOUBLE PRECISION by value entry_point 'fudlib_mindbl' module_name 'fudlib'

select
cast('01.01.1000' as timestamp)+
"mindbl"("f1_timestamp"-cast('01.01.1000' as timestamp), "f2_timestamp"-cast('01.01.1000' as timestamp))
from "t1"

Как написать попроще?
...
Рейтинг: 0 / 0
Минимальное из двух timestamp-ов
    #32073538
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну нет у меня времени это пробовать, нету. Должно работать.
А вобще - качай FB1.5 и делай в нём чё хошь - там много встроенных плюшек по такому поводу появилось (например CASE). Думаю, что стабильная версия скоро появиться. Адрес: http://firebird.sourceforge.net
Там и доки лежат
...
Рейтинг: 0 / 0
Минимальное из двух timestamp-ов
    #32073561
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firebird-у, ну не верю я пока (дурацкое такое предубеждение)

А написать можно еще так:
select "f1_timestamp"+"mindbl"(0, "f2_timestamp"-"f1_timestamp") from "t1"

Gold-у персональное спасибо за сочувствие !!!
...
Рейтинг: 0 / 0
Минимальное из двух timestamp-ов
    #32073670
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Черт! Полезли ошибки в секунду, наверное, из-за округлений
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Минимальное из двух timestamp-ов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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