webForumDet fria alternativet
Logga in / Bli medlem

Konvertera text till tal utan decimaler

Databaser & SQL

2 svar · 491 visningar · startad av HeHo

Medlem sedan apr. 2000277 inlägg
Frågan#1

Jag har ett prisfält som är av typen varchar (fråga mig inte varför :l ) som jag vill ändra priset i.
Så här skriver jag till SQL:en

UPDATE produktt SET pris = (CAST(pris AS INT)/1.25)*1.06

Japp...det funkar bra, den räknar rätt och så, men den lägger till 8 decimaler. Varför??
Ska tillägga att jag testat att göra om till money men då blir det 10 decimaler.
Jag vill alltså ha jämna kronor och priset skall avrundas uppåt vid >50 öre och nedåt vid <50 öre.
Hur skriver jag då?

Medlem sedan juni 200032 967 inlägg
#2

Utan att tidigare ha använt cast(), så känns det som att du borde kunna lägga på ett cast-uttryck utanför det du nu har.

Det jag menar:

UPDATE produktt SET pris = (CAST(CAST(pris AS INT)/1.25)*1.06 AS INT)

Mvh,

Medlem sedan apr. 2000277 inlägg
#3

Tack @nders!
Såklart ska det vara så....ganska logiskt bara man använder hjärnan :)

Jag flyttade en parantes så funkade det!

UPDATE produktt SET pris = CAST((CAST(pris AS INT)/1.25)*1.06 AS INT)
241 ms totalt · 4 externa anrop · v20260731065814-full.1b2494f0
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)