Select ::integer u spatne ulozenych dat – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Select ::integer u spatne ulozenych dat – PHP – Fórum – Programujte.comSelect ::integer u spatne ulozenych dat – PHP – Fórum – Programujte.com

 

zak0
Newbie
19. 10. 2020   #1
-
0
-

Dobry den,

mam v postgresove tabulce ve sloupci jako character varying ulozena cisla ve tvaru s desetinnou carkou i teckou. Potreboval bych je vybrat a presvedcit select aby carku chapal take jako desetinnou tecku. Jde to nejak udelat v ramci selectu? Pokud ano, prosim o priklad. Aktualne pouzivam tuto konstrukci

SELECT * FROM tabulka WHERE ((cena::integer <= 90) AND (cena::integer >= 60))

ktera ale s cisly s desetinnou carkou vraci chybu. 

Nahlásit jako SPAM
IP: 31.30.86.–
peter
~ Anonymní uživatel
4014 příspěvků
20. 10. 2020   #2
-
0
-

Co ti odpovedel google?
google = postgre sql nahrazeni carky za tecku u ceskych cisel
google = postgre sql prevod cisla s carkou na cislo

DECLARE @String AS VARCHAR(255) = 'Ahoj-já-jsem-text';
SELECT REPLACE(@String,'-',' ') AS String_po_Replace;

Otazkou je, vsak, proc cislo ukladas jako string? A jestli by nebylo lepsi vytvorit si jiny sloupec a do nej ta cisla prevest? Ten puvodni bych si tam nechal, kdyby se vyskytly chyby. Pokud si teda neumis udelat dobrou kontrolu. Treba limit integer, limit float, treba u penez a miliardovych castek.
Pokud se jedna o penize a vim, ze chci jen a pouze 2 desettinna mista, tak cele cislo nasobim 100 a ulozim jako cislo. To by slo pak resit mozna jednoduseji

if (str obsahuje ',' => pozice)
  int(substr(str, 0, pozice)) *100 + int(substr(str, 0, pozice+1)) nebo
  int(str) * 100

Kazdopadne, pokud s tim chces dal v sql dotazech pracovat, tak budes stejne potrebovat to cislo jako indexovany sloupec a ne pokazde prevadet.

Nahlásit jako SPAM
IP: 193.84.198.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý