PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Calcola la somma della colonna del tempo in PostgreSql

Quello che vuoi, non è possibile. Ma probabilmente hai frainteso il time digita :rappresenta un preciso punto temporale di un giorno. Non ha molto senso aggiungere due (o più) volte. ad es. '14:00' + '14:00' = '28:00' (ma non ci sono 28 ore in un giorno).

Quello che probabilmente vuoi è interval (che rappresenta gli intervalli di tempo; ore, minuti o anche anni). sum() supporta interval argomenti.

Se usi gli intervalli, è così semplice:

SELECT sum(interval_col) FROM my_table;

Tuttavia, se ti attieni al time digita (ma non hai motivo per farlo), puoi trasmetterlo a interval calcolare con esso:

SELECT sum(time_col::interval) FROM my_table;

Ma ancora una volta, il risultato sarà interval , perché time i valori non possono superare la 24a ora in un giorno.

Nota :PostgreSQL eseguirà anche il cast per te, quindi sum(time_col) dovrebbe funzionare anche lui, ma il risultato è interval anche in questo caso.