Size: a a a

2021 August 30

IZ

Ilia Zviagin in MySQL
Да, тоже вариант
источник

G

Grigorij in MySQL
Это прямо внутри insert'a можно сделать, кстати
источник

G

Grigorij in MySQL
insert ... select
источник

IZ

Ilia Zviagin in MySQL
Да можно
источник

A

Art in MySQL
А как быть с тем если интервал будет чуть раньше если в записи ещё нет конечной даты?
источник

IZ

Ilia Zviagin in MySQL
Чего?
источник

G

Grigorij in MySQL
игнорируй или подставляй now()
источник

IZ

Ilia Zviagin in MySQL
Если интервал не закрытый, значит он ещё не кончился и его не нужно обрабатывать.
Если есть конечная запись, но нет начальной - это ошибка. Как еë обрабатывать - вопрос бизнес логики
источник

VP

Vasili Pinchuk in MySQL
2 колонки time_start, time_stop
источник

VP

Vasili Pinchuk in MySQL
1 задача выбрать все попавшие в интервал отрезки
2 задача отрезать и начального и конечного отрезка время до указанного интервала
3 сложить все дельты времени
источник

VP

Vasili Pinchuk in MySQL
решай последовательно вложенными подзапросами
источник

A

Art in MySQL
Мне кажется мой математический вариант намного проще и менее нагруженный
источник

VP

Vasili Pinchuk in MySQL
лучше ещё инкремент счётчик добавить к отрезкам
источник

A

Art in MySQL
Тут при каждом инсерте нужно выполнять ещё и селект и проверять по условию
источник

VP

Vasili Pinchuk in MySQL
если ты не знаешь тип нажатия (старт/стоп) то по-любому в базе нужно глянуть, что было до того
источник

IZ

Ilia Zviagin in MySQL
Который?
источник

A

Art in MySQL
суммировать все unix таймы со статусами 1 и с 0. И далее эти суммы вычесть
источник

A

Art in MySQL
вот простой пример:
0    0
5    1
12   0
15   1
21   0
34   1
45   0

суммируем все записи со статусом 1 и 0 и 1 вычитаем из 0
источник

A

Art in MySQL
вместо цифр юникстаймы
источник

A

Art in MySQL
в данном примере 24 секунды человек проработал
источник