|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[MySqL]devo convertire la somma di varbinary...
In formato "tempo" espresso in centesimi.
La situazione è questa: Da non so dove viene generata una tabella che contiene valori del tipo: 188.3 145 190 213.3 e così via e sono definiti come varbinary (non so il perchè e non ho autorizzazioni per variare questa cosa). ora, io dovrei fare una somma di questi valori, e quindi la prima cosa che ho fatto è stata: select sum(valori); Nel caso dei valori riportati su ho giustamente ottenuto: 736,60. Il problema è che quel ".3" in realtà rappresenta delle "mezze ore", quindi, la mia somma dovrei farla tra: 188.5 145 190 213.5 che quindi equivale a 737 ( e se notiamo il valore di prima, 736.60, il .60 rappresenta appunto un'ora). Ora, è logico che non devo convertire ogni singolo valore, ma stavo cercando di trovare una formula di questo tipo che invece, ovviamente, su un campo di tipo 'time' mi funziona perfettamente: select sum(time_to_sec(valore) / 3600); Ma appunto, 'valore' in quel caso è di tipo time. Mi date qualche idea? Grazie, RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
uppettino
Ho dimenticato di menzionare il fatto che preferibilmente dovrei farlo tramite qualche funzione di mysql direttamente. Se non esiste qualcosa del genere allora ovviamente tratterò il numero in questo modo: separo le ore dai minuti, e poi faccio i minuti diviso sessanta; es.: 190.30 -> 190 + (30/60) = 190.50
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
ok, ho risolto facendo prima una select sui tipi di campo varbinary formattandoli in questo modo:
Codice:
string myTotal = "SELECT TIME_FORMAT(SUM(TIME_TO_SEC(total) / 3600)), GET_FORMAT(TIME, 'ISO') FROM blablbalba" ;
MySqlCommand getTotal = new MySqlCommand(myTotal, myConnection);
string totale = getTotal.ExecuteScalar().ToString();
double totalTime = Double.Parse(totale);
myLabel = totalTime.ToString("N2"); //formattazione per limitare la visualizzazione a due decimali
RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
Ultima modifica di RaouL_BennetH : 09-03-2007 alle 12:53. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:25.



















