Ciao ho avuto un problema simile, ha preso un po 'di tempo per pensare e qui è la mia soluzione, ho avuto il tavolo con abbonamenti degli utenti, lì triste orario di partenza e orario di chiusura, il mio problema era un po 'più complesso po' fondamentalmente si riduceva a questo:
SELECT subscription_id, time_open, time_closed, TIMESTAMPDIFF(DAY,time_open,time_closed) AS Day,
HOUR(sec_to_time(TIMESTAMPDIFF(SECOND,ADDDATE(`time_open`, INTERVAL TIMESTAMPDIFF(DAY,time_open,time_closed) DAY),`time_closed`))) AS Hour,
MINUTE(sec_to_time(TIMESTAMPDIFF(SECOND,ADDDATE(`time_open`, INTERVAL TIMESTAMPDIFF(DAY,time_open,time_closed) DAY),`time_closed`))) AS Minute,
SECOND(sec_to_time(TIMESTAMPDIFF(SECOND,ADDDATE(`time_open`, INTERVAL TIMESTAMPDIFF(DAY,time_open,time_closed) DAY),`time_closed`))) AS Second
FROM `user_subscription`
Quindi, in sostanza, ciò che fa questa query è che calcola i giorni deducendo le date nella prima riga. Quindi aggiunge il numero di giorni interi all'ora di inizio e riduce il tempo di chiusura della mia somma, quindi ciò che rimane è l'ora nel giorno corrente. Dopodiché basta selezionare Ore, minuti e secondi da quello. Se lo vuoi tutto insieme puoi concatenare le stringhe ma in questo modo puoi usarlo ulteriormente, a differenza delle stringhe.
fonte
2013-05-22 14:51:16
Cosa stai usando? sql-server, oracel, mysql – Arion
Quali RDBMS e cosa hai provato? – Rahul
Ha ottenuto 26k visualizzazioni e un distintivo d'oro per questo: | – OGHaza