Modificare formato campo float

di il
6 risposte

Modificare formato campo float

Salve a tutti
ho necessità di bonificare dei campi di una tabella di un DB
Attualmente il campo è definito come FLOAT, e per qualche motivo quando i dati vengono salvati sul DB, hanno il formato del PUNTO sbagliato. Premetto che sono dei valori di temperatura.
Per esempio mi ritrovo 151.25, quando dovrebbe essere 15.125.
Come posso fare un update prendendo tutte le misurazioni che hanno questo formato ###.## e farlo diventare ##.###?

Grazie in anticipo a tutti

6 Risposte

  • Re: Modificare formato campo float

    rdie77 ha scritto:


    ho necessità di bonificare dei campi di una tabella di un DB
    Attualmente il campo è definito come FLOAT, e per qualche motivo quando i dati vengono salvati sul DB, hanno il formato del PUNTO sbagliato. Premetto che sono dei valori di temperatura.
    Per esempio mi ritrovo 151.25, quando dovrebbe essere 15.125.
    Come posso fare un update prendendo tutte le misurazioni che hanno questo formato ###.## e farlo diventare ##.###?
    Sei sicuro che il problema sia nel DB e non nel client?

    Se il problema è realmente nel DB fai banalmente una query di update che divide per 10 il valore di temperatura.

    Se fosse invece nel client occorre indagare meglio ... incominciando dal client in uso.
  • Re: Modificare formato campo float

    max.riservo ha scritto:


    rdie77 ha scritto:


    ho necessità di bonificare dei campi di una tabella di un DB
    Attualmente il campo è definito come FLOAT, e per qualche motivo quando i dati vengono salvati sul DB, hanno il formato del PUNTO sbagliato. Premetto che sono dei valori di temperatura.
    Per esempio mi ritrovo 151.25, quando dovrebbe essere 15.125.
    Come posso fare un update prendendo tutte le misurazioni che hanno questo formato ###.## e farlo diventare ##.###?
    Sei sicuro che il problema sia nel DB e non nel client?

    Se il problema è realmente nel DB fai banalmente una query di update che divide per 10 il valore di temperatura.

    Se fosse invece nel client occorre indagare meglio ... incominciando dal client in uso.
    Ciao Max
    grazie per la risposta. Sicuramente il problema è nel sensore che alcune volte ha un problema sul valore che recupera. Potrei normalizzare il valore a monte, ma al momento per fare prima preferisco bonificare a valle una volta al giorno
  • Re: Modificare formato campo float

    rdie77 ha scritto:


    Sicuramente il problema è nel sensore che alcune volte ha un problema sul valore che recupera.
    Potrei normalizzare il valore a monte, ma al momento per fare prima preferisco bonificare a valle una volta al giorno
    Se ritieni che il problema sia a monte (sul sensore) in fase di inserimento del dato nel DB aggiungi i controlli necessari.

    Per 'aggiustare' il db, se hai valori validi e valori non validi occorre che trovi la formula per discriminarli ...

    Che sensore è?
    Come recuperi il valore di temperatura?
    Puoi imporre un valore minimo e un valore massimo?
    Quanto sono importanti 3 cifre decimali (per una misura di temperatura)? E soprattutto sono accurate ? Il sensore realmente ha quella sensibilità/accuratezza?
    La 3 cifra decimale su una misura di temperatura ha senso solo nei laboratori di taratura (in alcuni), considerando che la catena termometrica in grado di garantire l'accuratezza richiesta costa alcune migliaia di Euro ... e comunque anche la seconda cifra decimale (sempre in termini di accuratezza/ripetibilità) è già oltre le normali applicazioni industriali ...
    Tutto questo pippone per dire che sei stai facendo qualcosa di casalingo/domotico/industriale standard, limitati all'uso di una sola cifra decimale : ti garantisco che ne hai a sufficienza
  • Re: Modificare formato campo float

    max.riservo ha scritto:


    rdie77 ha scritto:


    Sicuramente il problema è nel sensore che alcune volte ha un problema sul valore che recupera.
    Potrei normalizzare il valore a monte, ma al momento per fare prima preferisco bonificare a valle una volta al giorno
    Se ritieni che il problema sia a monte (sul sensore) in fase di inserimento del dato nel DB aggiungi i controlli necessari.

    Per 'aggiustare' il db, se hai valori validi e valori non validi occorre che trovi la formula per discriminarli ...

    Che sensore è?
    Come recuperi il valore di temperatura?
    Puoi imporre un valore minimo e un valore massimo?
    Quanto sono importanti 3 cifre decimali (per una misura di temperatura)? E soprattutto sono accurate ? Il sensore realmente ha quella sensibilità/accuratezza?
    La 3 cifra decimale su una misura di temperatura ha senso solo nei laboratori di taratura (in alcuni), considerando che la catena termometrica in grado di garantire l'accuratezza richiesta costa alcune migliaia di Euro ... e comunque anche la seconda cifra decimale (sempre in termini di accuratezza/ripetibilità) è già oltre le normali applicazioni industriali ...
    Tutto questo pippone per dire che sei stai facendo qualcosa di casalingo/domotico/industriale standard, limitati all'uso di una sola cifra decimale : ti garantisco che ne hai a sufficienza
    Il sensore non è altro che un DS18B20 collegato tramite gpio ad un raspberry pi3.
    Il valore lo recupero tramite del codice C, e talvolta (data l'economicità del sensore come giustamente hai sottolineato tu) il valore è sballato dal punto di vista della virgola.
  • Re: Modificare formato campo float

    Alla fine sono riuscito a sistemare lo script che recupera e memorizza i valori correttamente nel DB.
    Ora sto cercando di bonificare il DB, e vi chiedo aiuto sulla query da eseguire.
    Per estrarre i dati non ho problema, non so come fare l'update con una regexpr

    Grazie ancora
  • Re: Modificare formato campo float

    Mi rispondo da solo per la query
    Update TemperatureLOG set T = T / 10 where T>99 and Zona='A1';
Devi accedere o registrarti per scrivere nel forum
6 risposte