ciao a tutti!
non risco a trovare la funzione (se esiste) che mi faccia la somma del campo TIME estratto da db...
grazie...
ciao a tutti!
non risco a trovare la funzione (se esiste) che mi faccia la somma del campo TIME estratto da db...
grazie...
nemmeno una piccola funcina?? qualche idea??![]()
che tipo di somma?
think simple think ringo
bè io un db con i campi
cognome - convegno - ore_svolte
volevo fare l'estrazione del campo ore_svolte (tipo TIME) e fare la somma... ma se ho:
1 record 2 ore
2 record 3 e mezza
mi restituisce 5 invece di 5 e mezza
grazie
:master:[supersaibal]Originariamente inviato da kodode
bè io un db con i campi
cognome - convegno - ore_svolte
volevo fare l'estrazione del campo ore_svolte (tipo TIME) e fare la somma... ma se ho:
1 record 2 ore
2 record 3 e mezza
mi restituisce 5 invece di 5 e mezza
grazie [/supersaibal]
nn ho capito![]()
come sn memorizzati i dati??
think simple think ringo
porta pazienza se mi spiego male
ora provo a spiegarmi meglio...
allora i campi abbiamo detto che sono:
cognome - convegno - ore_svolte
[text] [text] [time]
es:
mario - convegno sulla privacy - 2:00
mario - convegno sulla 626 - 3:30
ora se voglio sapere il totale delle ore presenti da mario nei convegni dovrei fare (2)+(3:30)= (5:30) invece lui restituisce 5
i record vengono inseriti tramite un form
il campi che ci interssa in partilare (ore_svolte) è di tipo TIME e viene inserito nel formato 00:00:00
ti prego dimmi dove non sono chiaro
grazie!!!
ciao, nn credo che il formato TIME sia il più indicato per questo tipo di elaborazioni, cmq questo tipo di operazione in sè è fattibile:
codice:SELECT FROM_UNIXTIME( UNIX_TIMESTAMP('2005-01-01 00:00:00') + SUM( UNIX_TIMESTAMP( CONCAT('2005-01-01 ',ore_svolte)) - UNIX_TIMESTAMP('2005-01-01 00:00:00')),'%H:%i') AS totale FROM nome_tabella WHERE cognome = 'mario'![]()
think simple think ringo
bè mi dai qualche suggerimento sul formato?
grazie...
secondo me ti conviene memorizzare il numero di minuti per ogni persona:[supersaibal]Originariamente inviato da kodode
bè mi dai qualche suggerimento sul formato?
grazie... [/supersaibal]
poi lo gestisci come preferisci...codice:00:30 -> 30 02:00 -> 120 02:30 -> 150
cmq nulla ti vieta di tenere il TIME ed usare la query di prima
![]()
think simple think ringo
però...
SELECT
FROM_UNIXTIME( UNIX_TIMESTAMP('2005-01-01 00:00:00') +
SUM( UNIX_TIMESTAMP( CONCAT('2005-01-01 ',ore_svolte))
- UNIX_TIMESTAMP('2005-01-01 00:00:00')),'%H:%i') AS totale
FROM nome_tabella
WHERE cognome = 'mario'
io ho il formato TIME non TIMESTAMP... è uguale?
non risco a farmi restituire il valore...
$totaleOre_svolte=0;
$sql="SELECT FROM_UNIXTIME( UNIX_TIMESTAMP('2005-01-01 00:00:00') + SUM( UNIX_TIMESTAMP( CONCAT('2005-01-01 ',ore_svolte)) - UNIX_TIMESTAMP('2005-01-01 00:00:00')),'%H:%i') AS totale FROM nome_tabella
WHERE cognome = 'mario'";
$query = mysql_query ($sql) or die (mysql_error());
while ($valori=mysql_fetch_array($query)){
$totaleOre_svolte.=$valori["totale"];
}; echo $totaleOre_svolte;
PS non mi scrive nemmeno 0