Avatar billede bhn.314 Nybegynder
17. november 2005 - 14:58 Der er 9 kommentarer og
1 løsning

Kommatal i Postgresql

Jeg har en kolonne i min database der skal indeholde dansk talsætning, dvs. 1000000,50 og ikke 1000000.50. Jeg skal regne på dem senere.

Skal jeg bare lave datatypen som varchar og så caste eller er der en anden måde?
Avatar billede arne_v Ekspert
17. november 2005 - 15:03 #1
nej

DECIMAL(14,2)

og så styrer du formateringen i din applikation

der er alt for store problemer med at have tal i VARCHAR
Avatar billede bhn.314 Nybegynder
17. november 2005 - 15:10 #2
Der er da lige så mange problemer med det andet. sikre formatering osv.
Avatar billede arne_v Ekspert
17. november 2005 - 15:15 #3
hvad sprog laves applikationen i ?
Avatar billede bhn.314 Nybegynder
17. november 2005 - 15:23 #4
php
Avatar billede bhn.314 Nybegynder
17. november 2005 - 15:24 #5
...og xml/xslt
Avatar billede arne_v Ekspert
17. november 2005 - 15:35 #6
nu er jeg ikke så skrap til PHP men jeg vil stadig mene at
valg af . eller , hører hjemme ude i præsentations laget og ikke
bør komme i nærheden af databasen
Avatar billede bhn.314 Nybegynder
17. november 2005 - 15:43 #7
Hm! Ja, det har du vel egentligt ret i.

Jeg kunne vel også bare lave en PL/SQL funktion der sikrede dette.
Avatar billede dsj Nybegynder
17. november 2005 - 16:33 #8
Dette link viser hvordan du formaterer tal i php: http://dk2.php.net/manual/en/function.number-format.php

Jeg vil personligt mene, at alt der har med præsentation at gøre, skal placeres i præsentationslaget, og vil være direkte uhensigtsmæssigt og grimt at placere i databasen. Hvad nu hvis et mellemlag skal lave udregninger med de tal der kommer fra databasen, men allerede er castede til strenge? Så skal mellemlaget første caste tilbage til decimal-tal og så har det hele været til ingen nytte... ækelt og ulogisk :-)
Avatar billede Slettet bruger
19. november 2005 - 07:46 #9
Der findes vel ikke noget brugbart argument for at gemme et tal som en tekst i en database?

Du vil ikke kunne bruge det til beregninger (simpel sum eksempelvis) uden at skulle konverterer til decimal type. Ikke alene er det dyrt, det bliver også rigtigt kedeligt når din formatering er dansk (altså ,) og din database konverterer med engelsk eller c-type (altså .).

Derfor lyt til dsj og arne_v brug en decimal - det er den eneste rigtige måde at håndtere det på.

Hvis du vil kan du jo håndterer det i XSLT ved at definere bruge XSLT elementet decimal-format (http://developer.mozilla.org/en/docs/XSLT:decimal-format)
Avatar billede bhn.314 Nybegynder
02. maj 2007 - 14:15 #10
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester