Я использовал бы подмодули (в качестве Pat Notz) или два отличных репозитория. Если бы Вы изменяете свои двоичные файлы слишком часто, то я попытался бы минимизировать влияние огромного репозитория, чистя историю:
у меня была очень похожая проблема несколько месяцев назад: ~21 ГБ файлов MP3, несекретных (плохие имена, плохой id3, не знают, нравится ли мне этот файл MP3 или не...), и копируемый на трех компьютерах.
я использовал диск внешнего жесткого диска с основным репозиторием Мерзавца, и я клонировал его в каждый компьютер. Затем я начал классифицировать их обычным способом (продвижение, получение по запросу, слияние... удалив и переименовывая много раз).
В конце, я имел только ~6 ГБ файлов MP3 и ~83 ГБ в .git каталоге. Я использовал git-write-tree
и git-commit-tree
для создания новой фиксации, без предков фиксации, и запустил новое ответвление, указывающее на ту фиксацию. "Журнал мерзавца" для того ответвления только показал одну фиксацию.
Затем я удалил старое ответвление, сохраненное только новое ответвление, удалил повторно пороть и выполнил "чернослив мерзавца": после этого мои .git папки взвесили только ~6 ГБ...
Вы могли "произвести чистку" огромного репозитория время от времени таким же образом: Ваш "клон мерзавца" будет быстрее.
Попробуйте посмотреть UNIX_TIMESTAMP
и SEC_TO_TIME
.
Вы суммируете различия между отметками времени, а затем используете это значение (в миллисекундах), чтобы получить время:
SELECT SEC_TO_TIME(time_milis / 1000)
FROM (
SELECT SUM(UNIX_TIMESTAMP(date1) - UNIX_TIMESTAMP(date2)) as time_milis
FROM table
)
SELECT some_grouping_column, SUM(TIMEDIFF(datecol1,datecol2)) as tot_time
FROM my_table
GROUP BY some_grouping_column;
Check out the MySQL DateDiff Function
SELECT SUM(DATEDIFF(endtime, starttime))
FROM somerecordstable
WHERE starttime > '[some date]' AND endtime <= '[some date]'
You could also try:
SELECT SUM(TIMEDIFF(endtime, starttime))
FROM somerecordstable
WHERE starttime > '[some date]' AND endtime <= '[some date]'
I haven't tested the second one, but I know the first one should work.
Я думаю, вам нужно использовать этот код ... он работает :)
SELECT
SEC_TO_TIME( SUM( TIME_TO_SEC( `time` ) ) ) AS total_time
FROM time_table;