<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - round, trunc]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=284&amp;type=atom"/>
	<updated>2009-09-04T09:04:36Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=284</id>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1250#p1250"/>
			<content type="html"><![CDATA[dzięki]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-04T09:04:36Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1250#p1250</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1249#p1249"/>
			<content type="html"><![CDATA[No to index który nie wisi na kolumnie tylko na jakiejś fukcji deterministycznej np
[code]
create index osb_nazw_idx on osoby (upper(nazwisko));
[/code]

i może być  użyty gry wywolasz zapytanie

[code]
select * from osoby where upper(nazwisko)='KOWALSKI';
[/code]]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-09-04T08:49:25Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1249#p1249</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1248#p1248"/>
			<content type="html"><![CDATA[Dobry przykład z samochodami, 

pole daty do roku jakoś nie pasuje ponieważ nie chce przyjąć samego roku krzyczy że niewłaściwy format daty. A rok jest wpisywany jako rok, nie jest wybierany z żadnej daty.

Może coś więcej o indexie funkcyjnym lub jakiś przykład, bo pierwsze o takim słyszę.
 ( Google : Indeksy funkcyjne, gdzie indeks jest wynikiem funkcji, a nie wartości kolumny)]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-04T08:43:34Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1248#p1248</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1245#p1245"/>
			<content type="html"><![CDATA[Tez prawda chyba ze chce indeksowac tylko po roku, jakos indeksy funkcyjne w postgresie tak srednio do mnie przemawiaja ale moze przesadzam.]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-09-04T08:32:20Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1245#p1245</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1244#p1244"/>
			<content type="html"><![CDATA[Witam serdecznie,
skoro rok jest czescia daty to moze typ danych data bylby najwlasciwszy?]]></content>
			<author>
				<name><![CDATA[sulavix]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=972</uri>
			</author>
			<updated>2009-09-04T08:26:51Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1244#p1244</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1243#p1243"/>
			<content type="html"><![CDATA[Na przykład dla tabeli z samochodami i rokiem produkcji, 
1) średni wiek samochodów, czyli operacja matematyczna wykonywana na roku
2) samochody, które są starsze niz jakis samochód x (operacja >, która dla napisów i liczb może inaczej dzialać)
itp itd.]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-09-04T07:58:58Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1243#p1243</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1242#p1242"/>
			<content type="html"><![CDATA[Operacje na roku to może być np: grupowanie po roku lub rok.tabela1=rok.tabela2, ale czy tu potrzebny smallint? Chyba, że na smallint wykona się to szybciej. Smallint 2 bajty, rok ma 4 cyfry więc char(4) lub varchar(4) może być większy od 2 bajtów?

Do jakich operacji musiałbym rzutować varchar w polu rok? Rozumiem gdyby to było np. pole ilość wtedy się sumuje itp.]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-04T07:45:07Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1242#p1242</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1241#p1241"/>
			<content type="html"><![CDATA[W numericu masz większą kontrolę na ilością cyfr dziesiętnych bo sam sobie to definiujesz, real z góry zakłada 6 cyfr dziesiętnych.
No to zależy czy na roku nie wykonujesz nie bedziesz wykonywal operacji (chociaz jak dasz varchar to i tak mozna potem spróbowac zrzutować). Wszystko rozbija sie o ilosc pamieci zajmowanej przez zmienne, smallint=2bajty varchar moze byc większy. No i jeszcze jedna rzecz w smallint wstawiasz rok z przedzialu -32768 to +32767 wiec informacji o daleeeeeekiej przyszlosci raczej nie bedziesz mógł przechowywac :).]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-09-04T06:22:55Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1241#p1241</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1240#p1240"/>
			<content type="html"><![CDATA[Uzywam EMS SQL Manager 2007

Z Numeric już sobie poradziłem, ale zapytam czy do liczb np: 123,324 lub 0,321 uzywać Numeric czy Real??
I jeszcze jedno, w jakiejś książce widziałem pole Rok Typu Smallint, czy do tego pola rok nie lepiej uzywać Char lub Varchar?
Kiedyś uczono mnie że jeżeli nie wykonuje na polu operacji matematycznych to lepiej stosować typy tekstowe.]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-04T05:16:21Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1240#p1240</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1235#p1235"/>
			<content type="html"><![CDATA[W 8.3.7 :: wciaz dziala (w psql nie mam zadnych problemow). Uzywasz pgadmina?  to pewnie jego problem.
Co za cyrki z tym numeric?]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-09-03T13:25:14Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1235#p1235</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1234#p1234"/>
			<content type="html"><![CDATA[dzięki,

ale nadal typ pola Numeric mnie interesuje, dodatkowo rzutowanie :: u mnie nie działa, mam wersje 8.3. 

Znalazłem taki opis w książce "Beginning Databases with PostgreSQL" -->>  "The syntax with :: is historical PostgreSQL usage, as is the function-call syntax." z tego co rozumiem to chyba w nowszych wersjach :: zastapiono cast. Jeżeli się mylę to proszę mnie poprawić.]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-03T12:34:02Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1234#p1234</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1231#p1231"/>
			<content type="html"><![CDATA[[code]
postgres=# select * from test;
   i   
-------
 1.222
 0.111
(2 rows)
[/code]
round z jedym parametrem zaokragla do najbliższej liczby całkowitej
[code]
postgres=# select round(i::numeric) from test;
 round 
-------
     1
     0
(2 rows)
[/code]
Ale mozesz mu podac drugim parametrem do ilu miejsc po przecinku ma zaokraglic
[code]
postgres=# select round(i::numeric,2) from test;
 round 
-------
  1.22
  0.11
(2 rows)
[/code]]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-09-03T10:19:27Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1231#p1231</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1230#p1230"/>
			<content type="html"><![CDATA[Już rozwiązałem problem

select round(CAST (wartosc AS numeric),2) from tabela

Ale ten Numeric dalej mnie interesuje, wpisując w tym polu np: 0,1234 po wyswietleniu dostaje 0]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-03T09:56:46Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1230#p1230</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[round, trunc]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1229#p1229"/>
			<content type="html"><![CDATA[Witam
Mam pole w tabeli typu Real lub Double Precision z wartością np 0,123456

wywołuje zapytanie które ma zaokrąglić tą wartość

select round(wartosc,2) from tabela
ale trunc i round zwracają błędy.

ERROR:  function round(double precision, integer) does not exist
LINE 1: select round(wartosc,2) from tabela
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.


Zauważyłem, że do round potrzebna jest liczba z kropką nie przecinkiem round(32.2345,2) działa.
Jednak pole w tabeli automatycznie nadaje przecinek zamiast kropki.

I jeszcze pytanko do czego jest typ Numeric, kiedy go zastosuję to już całkiem cyrki w tabeli.

Z góry dzięki za odpowiedź
Adam]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-03T09:42:09Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1229#p1229</id>
		</entry>
</feed>
