Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите новичку!!! / 7 сообщений из 7, страница 1 из 1
16.08.2005, 09:30
    #33216818
n@vigator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите новичку!!!
Пришлось разбираться с кодом, написанным на постгресе и встетились мне такие записи при создании таблицы:

timestamp without time zone DEFAULT ('now'::text)::timestamp(6) with time zone NOT NULL

что сие может значить, никак не могу понять?
и может это кто объяснит(последняя строка):

CREATE FUNCTION .....
......
declare traffinterval integer=to_number(cake.getParameter(''traffinterval'') ,''99999999999999999999'')::int;
itvr interval;
.......
itvr = (traffinterval*2)||'' sec'';
...
Рейтинг: 0 / 0
16.08.2005, 10:20
    #33216987
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите новичку!!!
n@vigatorПришлось разбираться с кодом, написанным на постгресе и встетились мне такие записи при создании таблицы:

timestamp without time zone DEFAULT ('now'::text)::timestamp(6) with time zone NOT NULL

что сие может значить, никак не могу понять?

Это тип без таймзоны с дефолтом на текущее дату/время.
При чем не нулевое :). А хытрая конструкция из-за особенностей приведения типов в PG.

n@vigator
и может это кто объяснит(последняя строка):

CREATE FUNCTION .....
......
declare traffinterval integer=to_number(cake.getParameter(''traffinterval'') ,''99999999999999999999'')::int;
itvr interval;
.......
itvr = (traffinterval*2)||'' sec'';
Ну вызов какой-то функции.
...
Рейтинг: 0 / 0
16.08.2005, 10:22
    #33216996
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите новичку!!!
n@vigatorПришлось разбираться с кодом, написанным на постгресе и встетились мне такие записи при создании таблицы:

timestamp without time zone DEFAULT ('now'::text)::timestamp(6) with time zone NOT NULL

что сие может значить, никак не могу понять?

Это тип без таймзоны с дефолтом на текущее дату/время.
При чем не нулевое :). А хытрая конструкция из-за особенностей приведения типов в PG.

n@vigator
и может это кто объяснит(последняя строка):

CREATE FUNCTION .....
......
declare traffinterval integer=to_number(cake.getParameter(''traffinterval'') ,''99999999999999999999'')::int;
itvr interval;
.......
itvr = (traffinterval*2)||'' sec'';
Ну это вызов какой-то функции.
:: - это прямое явное приведение типов
|| = конкатенация(объединение) строк

Если ответы не в тему - можно попробывать, например, более четко сформулировать вопросы.
...
Рейтинг: 0 / 0
16.08.2005, 13:16
    #33217848
n@vigator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите новичку!!!
т.е. получается, что itvr это временной интервал, а когда мы делаем конкатенацию с varchar, тогда что получаем, никак не пойму???
...
Рейтинг: 0 / 0
16.08.2005, 13:27
    #33217879
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите новичку!!!
авторitvr interval;
.......
itvr = (traffinterval*2)||'' sec'';
эквивалентно
itvr = ((traffinterval*2)||\' sec\')::interval;
неявное преобразование типов
...
Рейтинг: 0 / 0
16.08.2005, 13:34
    #33217903
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите новичку!!!
n@vigatorт.е. получается, что itvr это временной интервал, а когда мы делаем конкатенацию с varchar, тогда что получаем, никак не пойму???
А мы получаем интервал. В постгресе интервал и датавремя несколько разные вещи.
Итого мы получаем
Код: plaintext
1.
traffinterval* 2  - это время в секундах
, НО!!!
Для того что бы это понял постгрес мы делаем
Код: plaintext
1.
 (traffinterval* 2 )||'' sec'' - получаем строку типа "6 sec"
которую постгрес воспринимет как интервал и присваивает переменной itvr.

По моему будет так :)

А вообще как раз на эту тему написано здесь:
http://www.postgresql.org/docs/8.0/interactive/datatype-datetime.html и здесь
http://www.postgresql.org/docs/8.0/interactive/typeconv.html
...
Рейтинг: 0 / 0
16.08.2005, 14:35
    #33218115
n@vigator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите новичку!!!
Т.е. получается, что интервал - это просто величина(в нашем случае) в секундах.
А зачем надо делать такие преобразование, нельзя ли просто оперировать с этой величиной?
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите новичку!!! / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]