Zdravím, chtěl jsem se zeptat zda někdo nevíte jestli je možné v MySQL udělat, když mám třeba nějakou hodnotu v jedné tabulce viz staratabulka, je možné jí vložit do nové tabulky a převést na nový datový typ a odstranit nepotřebné znaky jako mezery a typ měny, aby výsledek byl viz novatabulka.
staratabulka:
pole "cena" má datový typ varchar(255)
Navíc jsou data u ceny uváděna takto př. 2 555 Kč
novatabulka:
pole "cena" má datový typ double
Výsledná cena by měla být ve formátu 2555
Př. dotazu
INSERT INTO novatabulka(nazevproduktu, cena)
SELECT nazevproduktu, cena FROM staratabulka
Doufám, že jsem to dostatečně popsal. [:-)]
Fórum › MySQL
Překonvertování na nový datový
Tak převést string (varchar) na float/double reprezentovaný jako DECIMAL lze přes CAST, něco jako:
cena = CAST(cena_jako_varchar AS DECIMAL(8,2))
(tj. na 8 míst z toho 2 desetinná)
No a těch zbytečných textů před a za se zbavíš přes REPLACE, takže to ve výsledku bude něco jako:
cena = CAST(REPLACE(REPLACE(cena_jako_varchar, ' ', ''), 'Kc', '') AS DECIMAL(8,2))
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žení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 5 hostů
Podobná vlákna
Dátový typ — založil zonda
Datový typ — založil Rade.k
Datový typ v tabulce — založil LiDr
Špatný datový typ? — založil Díkydíky
64-bit datový typ cisla — založil zak
Moderátoři diskuze