Försöker skriva ut ett decimaltal från databasen, kolumnen är av typen decimal.
När jag kör en response.write på talet får jag ut 705 när det borde vara 7,05
Nån som vet varför?
decimaler
14 svar · 323 visningar · startad av aleborg
Känner igen det där.. databastyp?
MySQL
query="select cast(cast(col as decimal(10,2)) as char(12)) as rounded from t"
set rs = connect.execute(query)
while not rs.eof
response.write rs("rounded") & "<br>"
rs.novenext
wend
Men om jag använder getrows då? Då kan jag ju inte skriva rs("rounded") !
Om du använder getrows eller inte har ingen betydelse
if not rs.eof then
arr = rs.getrows()
for i = 0 to ubound(arr,2)
response.write arr(0,i) & "<br>"
next
end if
provade det men fick följande fel:
You have an error in your SQL syntax near '(cast(My_Tips_Score as decimal(10,2)) as char(12)) as rounded From My_Tips Inner' at line 1
Mysql alltså, om du testar så här då?
query="select cast(round(My_Tips_Score ,2) as char(12)) as rounded from My_Tips"
får felet:
[TCX][MyODBC]You have an error in your SQL syntax near '(round(My_Tips_Score ,2) as char(12)) as rounded From My_Tips Inner Join Matcher' at line 1
min select:
speladem = getDbRows(connstr, "Select My_Tips_Lag_1, My_Tips_Lag_2, My_Tips_Score, Match_Lag_1, Match_Lag_2, Match_Score_1, Match_Score_2, Match_Odds_1, Match_Odds_x, Match_Odds_2, cast(round(My_Tips_Score ,2) as char(12)) as rounded From My_Tips Inner Join Matcher On Match_ID=My_Tips_MatchID Where My_Tips_Owner="& Session("UserID") &" And My_Tips_Community="& showcom &" And Matcher.Match_Score_1<>'' And My_Tips_Lag_1<>'' And TO_DAYS(NOW()) - TO_DAYS(Matcher.Match_Tid) <= 7")
Då verkar det som om cast inte finns med i den version du använder. Vad händer om du tar bort den delen och bara använder round?
då försvinner decimalerna helt!
Det är senaste versionen av MySQL
The CAST() and CONVERT() functions were added in MySQL 4.0.2.
Kör med den gamla "stabila" releasen tills dess att 4:an är rekommenderad att använda!
Tyvärr, så har jag inget mer att föreslå.
tack iaf, någon annan?
Ska inte ROUND fungera så att man får fram en avrundning till närmsta tal, och om det anges till decimal?
Provade på en select där jag vet att det skulle uppstå ett antal decimaler, ville få ner det till 2 decimaler:
Select avg(ROUND(My_Tips_Score,2))
provade även:
Select ROUND(avg(My_Tips_Score),2)
Men jag får bara fram heltal! :(
My_Tips_Score är av typen decimal