Форум: "Базы";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизРабота с типом INTERVAL Найти похожие ветки
← →
Деня (2006-09-12 20:18) [0]Мастера, подскажите такую вещугу :
каким образом отнять интервал времени (например, 30 минут)
от даты/ времени в SQL (FIBPLUS + FIREBIRD) .
Вопрос банальный, но что-то не выходит
Должно быть что-то типа (там) :
X.DATETIME_ - INTERVAL "00:30:00"
P.S. После INTERVAL еще пишется MINUTE TO SECOND или что-то вроде того
СПАСИБО ВСЕМ ЗА БУДУЩИЕ ВАШИ ПОДСКАЗКИ !
← →
Desdechado © (2006-09-12 21:26) [1]1 мин = 1/24/60 суток
← →
Деня (2006-09-12 23:01) [2]А конкретнее ?
> 1/24/60 суток
Такой маской задается интервал дат.
Если можно так задавать время, то какие использовать спецификаторы ?
← →
kaif © (2006-09-12 23:38) [3]А я вот замечал, что IB при работе с типом TIME единицей считает 1 секунду (в SQL-запросе)
Точно не помню - редко работаю с этим типом данных.
← →
atruhin © (2006-09-13 07:15) [4]Смотри статью - "Mathmatical operations on Time and Timestamp data"
на сайте Борланда
← →
Виталий Панасенко (2006-09-13 12:22) [5]DataSet.FieldByName("DTDIF").AsDateTime :=
DataSet.FieldByName("DT").AsDateTime - StrToDateTime("00:30:00");
DTDIF вычисляемое поле,
DT - поле типа TIMESTAMP
← →
atruhin © (2006-09-13 14:41) [6]Насколько я понял автору нужны операции с датой временем на сервере.
← →
Johnmen © (2006-09-13 14:51) [7]<DATETIME type field/variable> - 30*(1/24/60)
← →
atruhin © (2006-09-13 15:22) [8]> [7] Johnmen © (13.09.06 14:51)
Неправильно, проверял.
Subtract or Add a time from/to a timestamp.
How:Subtract the time from midnight, divide the result by the number of seconds in a day, take that result and add or substract it from your timestamp.
Example: This example shows what time it will be 2 hours from now.
select current_timestamp+(cast("2:00" as time)-cast("0:00" as time))/(60*60*24) from rdb$database;
← →
Деня (2006-09-13 15:33) [9]Мужики, спасибо!
Дам свои комменты. Кому-то , может, пригодится.
> TIME единицей считает 1 секунду
Вообще-то да, но лучше явно преобразовать
cast("X:XX" as time)
> Смотри статью - "Mathmatical operations on Time and Timestamp
> data"
> на сайте Борланда
Хорошая статья, идеальная для таких случаев
http://bdn.borland.com/article/28886
> DataSet.FieldByName("DTDIF").AsDateTime :=
> DataSet.FieldByName("DT").AsDateTime - StrToDateTime("00:
> 30:00");
> DTDIF вычисляемое поле,
> DT - поле типа TIMESTAMP
> <Цитата>
Такого рода программное преобразование очень удобно делать с технологиями типа BDE, в которые значения типа DATETIME заносятся только через параметры. ( или, может, у кого-то получилось дату загнать прямо в строку-SQL ? Если так, то, пожалуйста, кусок кода )
Т.е.
stringSQL := "... WHERE DATETIME_ = :MYDATETIME";
MyDateTime := [datetime] + StrToDateTime("00:30:00"); // вычисляем
X.ParamByName("MYDATETIME").AsDateTime := MyDateTime;
У меня другая ситуация, но за совет спасибо.
А с типом INTERVAL у меня в FIREBIRD чего-то не заладилось :{
Сделал через CAST()
← →
Johnmen © (2006-09-13 16:04) [10]
> atruhin © (13.09.06 15:22) [8]
> > [7] Johnmen © (13.09.06 14:51)
> Неправильно, проверял.
Я разве что-то говорил про TIMESTAMP? Вроде бы нет...:)
← →
Johnmen © (2006-09-13 16:06) [11]И ещё http://sql.ru/forum/actualthread.aspx?tid=135087
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c