powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Конверсия ТИПОВ
6 сообщений из 6, страница 1 из 1
Конверсия ТИПОВ
    #32180981
vampiere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема с конверсией:
'money'||to_char(now(),'YYYYMM')
нужно представить в виде таблицы с одноимённым названием !
============================================
PLEASE HELP ME !!!
напишите плз на мыло или тут !!! <-+= vampiere@mail.ru =+->
...
Рейтинг: 0 / 0
Конверсия ТИПОВ
    #32181068
Фотография Niemi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то я не понял, чего же хочешь. Я так понимаю это средствами shell.
...
Рейтинг: 0 / 0
Конверсия ТИПОВ
    #32181397
vampiere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
через шел 2пальца, а мне вот базу заставить надо
...
Рейтинг: 0 / 0
Конверсия ТИПОВ
    #32181607
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял тут хочется получить из двух колонок
типов money и date получить одну типа text или char/varchar
Хмм у меня это с ходу тоже не получилось и неудивительно в доке
еще с версии 6.5.3 писано что тип money НЕ ПОДДЕРЖИВАЕТСЯ.
Абыдно? мне тоже. Приходиться использовать numeric и извращаться с приставками. А как бы приятно было бы в тех же дельфях получить преобразование money/ftCurrency 8)
Что касается конвертирования - я вообще не въехал во что можно сконвертить
это грешный тип. Все на него орут - "Cannot cast type money to...."
Вот так.
Есть правда функция cash_out(money) cstring.
НО! Что делать с этим cstring в sql я сказать не могу - это псевдотип
сответствующий С-шным строкам. И вообще в разделе справки про псевдо-типы
написано что использовать этот тип в SQL (например создавать колонки) нельзя.
Зато его использует куча функций типа cp1251_to_koi8r Наверное
придется писать такую функцию самому. Но IMHO лучше всего от этого
типа отказаться пока не поздно внешними средствами сконвертить его в numeric - меньше проблем потом будет.
По крайней мере можно смело говорить что поддержки девелоперами для этого типа нет уже 3 года и не ожидается.
Вот пример :
http://postgresql.wplus.net/mhonarc/pgsql-hackers/1999-06/msg01000.html
...
Рейтинг: 0 / 0
Конверсия ТИПОВ
    #32195015
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поразмыслив я решил выкинуть это решеньице на обсуждение ;)
Прежде всего потому сабж топика не отвечает сути вопроса.
По мне так в каталоге contrib инсталла постгреса полезных вещей,
просто устанавливая его по короткой схеме или из портов
многие начинающие проходят мимо.
1) cтавим из ./contrib/dblink такую прикольную штуку - dblink прозывается.
С его помощью можно решить массу подобных проблем :
а) собираем сишную часть - gmake install
б) делаем функции - psql -f dblink.sql template1
Тут может быть только одна проблема - у меня например с ходу не нашелся libpq.so.3 - после корректировки путей все заработало.
2) допустим у нас есть уже куча таблиц (кстати с помощью dblinka наверное можно их и насоздавать ) вида
public | money_200301 | таблица
public | money_200302 | таблица
public | money_200303 | таблица
..... (подчеркивание в имени таблы я влепил для читабельности)
3) теперь наш запрос будет иметь такой вид
SELECT *
FROM dblink('dbname=mdb1', 'select * from ' || 'money_'||to_char(now(),'YYYYMM')) AS t1("Оплата" numeric, "дата" date)
Чего это зачит? Ну с первой строкой все просто - вызвали функцию, передали имя базы и запросик сгенеренный, а затем указали в каком виде мы расписали ее структуру получаемого рекордсета....
Кажется это то что и требовалось.
Может быть Всемогущий All поправит меня? ;)
...
Рейтинг: 0 / 0
Конверсия ТИПОВ
    #32195018
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поразмыслив я решил выкинуть это решеньице на обсуждение ;)
Прежде всего потому сабж топика не отвечает сути вопроса.
По мне так в каталоге contrib инсталла постгреса полезных вещей,
просто устанавливая его по короткой схеме или из портов
многие начинающие проходят мимо.
1) cтавим из ./contrib/dblink такую прикольную штуку - dblink прозывается.
С его помощью можно решить массу подобных проблем :
а) собираем сишную часть - gmake install
б) делаем функции - psql -f dblink.sql template1
Тут может быть только одна проблема - у меня например с ходу не нашелся libpq.so.3 - после корректировки путей все заработало.
2) допустим у нас есть уже куча таблиц (кстати с помощью dblinka наверное можно их и насоздавать ) вида
public | money_200301 | таблица
public | money_200302 | таблица
public | money_200303 | таблица
..... (подчеркивание в имени таблы я влепил для читабельности)
3) теперь наш запрос будет иметь такой вид
SELECT *
FROM dblink('dbname=mdb1', 'select * from ' || 'money_'||to_char(now(),'YYYYMM')) AS t1("Оплата" numeric, "дата" date)
Чего это зачит? Ну с первой строкой все просто - вызвали функцию, передали имя базы и запросик сгенеренный, а затем указали в каком виде мы расписали ее структуру получаемого рекордсета....
Кажется это то что и требовалось.
Может быть Всемогущий All поправит меня? ;)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Конверсия ТИПОВ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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