|
|
|
![]() |
|
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 11:53. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:50.