Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PostgreSQL > Как добавить несколько дней


Автор: DEER 12.1.2007, 11:26
Добрый день.
СУБД PostgreSQL 8.1
Есть такая табличка
Код

CREATE TABLE file
(
  sys_status int8 NOT NULL DEFAULT 0,
  order_id int8 NOT NULL,
  composition_id int8 NOT NULL,
  from_date timestamp,  -- дата создания
  validperiod int4 NOT NULL -- количество дней
) 

хочу выбрать даты окончания действия ("дата создания"+"количество дней")
пытался так
Код

SELECT to_timestamp(validperiod*60000)+from_date
FROM keyfile

но при выполнении ошибка
Цитата
operator does not exist: timestamp with time zone + timestamp without time zone


Поискал по сети какойнить мануальчик по функциям Postgre, но ничего не нашел..
Вопрос такой: Как можно к типу "timestamp without time zone" прибавить количество дней, хранящееся в числе?

И ещё был бы благодарен за ссылку на описание функций Prostgre

Автор: DEER 12.1.2007, 12:46
не знаю, на сколько это решение корректо, но у немя получилось сделать это так
Код

SELECT from_date + (to_char(validperiod, 99999999)||' days' )::interval
FROM file


Добавлено @ 12:48 
кстати очень порадовало....
нашел главу Date/Time Functions and Operators
так там таблица, в ней операция 
timestamp-timestamp присутствует, а timestamp+timestamp - нет  smile 

Автор: LSD 12.1.2007, 13:22
Цитата(DEER @  12.1.2007,  12:46 Найти цитируемый пост)
timestamp-timestamp присутствует, а timestamp+timestamp - нет

Потому, что операция timestamp-timestamp даст временной интервал между двумя датами. А вот что должно быть если к 5 января прибавить 31 декабря, непонятно.

Автор: DEER 12.1.2007, 14:05
в натуре...  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)