Главная страница
    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.055 c
4-1151042915
Izyum
2006-06-23 10:08
2006.11.12
Логические и физические диски


15-1161842790
kan
2006-10-26 10:06
2006.11.12
кодировка в PHP


15-1161749235
Palladin
2006-10-25 08:07
2006.11.12
Марка самолета


15-1161513590
SerJaNT
2006-10-22 14:39
2006.11.12
ShellListView


15-1161153013
LaidBack
2006-10-18 10:30
2006.11.12
Можно застрелиться...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский