Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [MYSQL] trasformare varchar in valori numerici

    Salve a tutti!

    Sto gestendo una tabella che contiene dei dati numerici da cui estraggo i valori medi, massimi, minimi, ecc tramite query.

    Il tipo di questi dati è settato come varchar, e solo adesso mi accorgo che i valori generati (medie, massime e minime) sono errati. Posso cambiare il tipo di dato della colonna da varchar a numerico? Perderei i dati?

    A tal proposito. poichè si tratta di numeri ad una cifra decimale, dite che il tipo FLOAT andrebbe bene?

    Inoltre, occuperebbe più memoria tale variabile numerica oppure l'attuale varchar(10)?

    grazie mille a tutti!!!
    Gianfranco

  2. #2
    innanzitutto avrai imparato che impostare il corretto tipo di dato è fondamentale.

    detto questo, per essere sicuro di non perdere niente, puoi aggiungere una nuova colonna, di tipo decimal(10,2). poi esegui una
    UPDATE tabella SET nuova_colonna=vecchia_colonna
    così ti ritrovi tutti i dati nella nuova.

    non conosco così bene MySql, potrebbe essere necessario dire di fare una conversione durante l'update, del tipo
    UPDATE tabella SET nuova_colonna=CAST(vecchia_colonna AS tipo_decimal)
    consulta la documentazione


  3. #3
    potrebbe essere anche che sia stato usato un varchar per utilizzare la virgola come divisore decimale. In questo caso si spigherebbe l'errore di calcolo.

    Errore che non guarirebbe trasformando il campo in numerico se prima non si cambiasse la virgola con il punto decimale

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Vi ringrazio per i tentativi di giustificarmi, ma... non credo di avere scusanti
    L'errore viene dal fatto che essendo alle prime armi ho copiato un esempio trovato da qualche parte, pensando che usando varchar mySQL in ogni caso riconoscesse il tutto come valore numerico.

    Utilizzo correttamente il punto e non la virgola, più tardi proverò a fare qualche prova!
    Gianfranco

  5. #5
    Allora, dopo aver fatto una colonna di backup ho provato a convertire direttamente dal pannello di aruba il tipo di variabile da varchar a decimal 10,1. Funziona!!! Il casting lo fa direttamente MySQL


    Grazie per l'aiuto!!
    Gianfranco

  6. #6
    ottimo, lasciami un mi piace (guarda in firma), grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.