Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Informix Новый топик    Ответить
 Вычисление времени операции  [new]
GReddyD
Member

Откуда:
Сообщений: 12
Всем доброго вемени суток.

Перейду сразу к делу. У меня есть два столбца date1 и date2.
Date1 - это время начало операции, Date2- время окончания операции. Тип данных у них у обоих Timestamp.

Я хочу вычесть Date1 из date2 через объявление переменной и вывод на экран результата. Подскажите как это сделать.

Заранее всем спасибо за помощь! :-)
13 дек 12, 17:01    [13627474]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление времени операции  [new]
svat2
Member

Откуда: Украина, Кременчуг
Сообщений: 263
GReddyD,

Чисто стратегически это выглядит так :

Date2 - Date1

... подробности же ("к черту подробности!" (с) ) изложены в соотв разделах FAQ ([url=]https://www.sql.ru/faq/faq_topic.aspx?fid=810[/url] и [url=]https://www.sql.ru/faq/faq_topic.aspx?fid=534[/url]) - изучить, доработать напильником, украсить стразочками.

ЗЫ. большое пожалуйста :)
13 дек 12, 17:34    [13627738]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление времени операции  [new]
GReddyD
Member

Откуда:
Сообщений: 12
Вот мой запрос который получился:

DEFINE GLOBAL runtime TIMESTAMP

LET Runtime = (SELECT AVG(endtl_dt - begintl_dt) FROM timelog)

SELECT COUNT(*) AS Amount,
DATE(CURRENT) AS Date
FROM timelog
WHERE tld_num = "1"
AND DATE(begintl_dt) = DATE(CURRENT)

Но ругается на первую строку: Код ошибки -201, положение SQL 42000: A syntax error has occurred.

Подскажи что написано не так? Конекчусь к БД информикс через NetBeans
13 дек 12, 21:01    [13628721]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление времени операции  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3794
GReddyD
Вот мой запрос который получился:

DEFINE GLOBAL runtime TIMESTAMP

LET Runtime = (SELECT AVG(endtl_dt - begintl_dt) FROM timelog)

SELECT COUNT(*) AS Amount,
DATE(CURRENT) AS Date
FROM timelog
WHERE tld_num = "1"
AND DATE(begintl_dt) = DATE(CURRENT)

Но ругается на первую строку: Код ошибки -201, положение SQL 42000: A syntax error has occurred.

Подскажи что написано не так? Конекчусь к БД информикс через NetBeans


DEFINE и LET можно использовать только в коде stored procedure. Это не PL SQL, никаких переменных вне кода.
13 дек 12, 22:17    [13629064]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление времени операции  [new]
GReddyD
Member

Откуда:
Сообщений: 12
Напишите пожалуйста как должно выглядить объявление переменной
14 дек 12, 09:33    [13629990]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление времени операции  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
GReddyD,

В Informix нет анонимных блоков, т.е. весь код (если это не запрос а какая то логика) надо писать в процедурах или функциях.
Т.е. нельзя написать вот так и выполнить этот код:

 define v1 int;
 let v1 = 1;


надо писать так:

create procedure test()
 define v1 int;
 let v1 = 1;
end procedure;
14 дек 12, 11:46    [13630560]     Ответить | Цитировать Сообщить модератору
Все форумы / Informix Ответить