Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.043 c
2-1161633221
5Stas5
2006-10-23 23:53
2006.11.12
Как сделать многострочный LISTBOX используя только WIN API


2-1162061766
PitTong
2006-10-28 22:56
2006.11.12
Помогите поставить пароль на приложение.


15-1161594503
Makhanev Alexander
2006-10-23 13:08
2006.11.12
Баг с потерей фокуса в винде...


2-1161774262
LexXL
2006-10-25 15:04
2006.11.12
as


2-1161852427
Ingwar
2006-10-26 12:47
2006.11.12
Перекинуть данные из переменной в структуру (record)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский