ЧАстые Вопросы и Ответы
Модераторы: kdv, CyberMax
-
bbeeaa
- Сообщения: 3
- Зарегистрирован: 14 июн 2007, 15:06
Сообщение
bbeeaa » 14 июн 2007, 16:54
Добрый день, просьба не бить ногами, за дурацкий вопрос.
В таблице есть поле типа TIMESTAMP, в котором хранится некая дата и время.
Как к этому значению добавить, например 10 минут? Или как получить 10 минут в виде типа TIMESTAMP? В чем вообще TIMESTAMP хранит дату и время?
сервер Firebird 1.5.
Я пытаюсь делать так:
Код: Выделить всё
A = 10;
DMIN = CAST(INDATE AS DOUBLE PRECISION);
DMIN = DMIN * 1440 + A;
INDATE = CAST(DMIN AS TIMESTAMP);
но ни к чему хорошему это не приводит.
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 14 июн 2007, 17:50
10 минут в виде timestamp получить нельзя - просто потому что это не время, а интервал. Можно получить время 00:10:00, но только в time, в 3-м диалекте.
Прибавить просто - добавь (1/24/60 * 10) к значению timestamp, получишь новый timestamp.
-
CyberMax
- Заслуженный разработчик
- Сообщения: 638
- Зарегистрирован: 31 янв 2006, 09:05
Сообщение
CyberMax » 15 июн 2007, 10:39
WildSery писал(а):10 минут в виде timestamp получить нельзя - просто потому что это не время, а интервал. Можно получить время 00:10:00, но только в time, в 3-м диалекте.
Интересно. По Борри в третьем диалекте:
DATE - дата (без времени);
TIME - время (без даты);
TIMESTAMP - дата и время.
Типа интервала как такового нет. Он получается вычитанием одного дня/времени из другого и имеет тип NUMERIC(18,9) (для D3).
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 15 июн 2007, 11:24
CyberMax писал(а):Типа интервала как такового нет.
Я и не утверждал, что есть. Я сказал, что "10 минут" - это не время, а интервал.
-
CyberMax
- Заслуженный разработчик
- Сообщения: 638
- Зарегистрирован: 31 янв 2006, 09:05
Сообщение
CyberMax » 15 июн 2007, 12:17
Пардон, неправильно тебя понял
.