
Evgeniy
13.02.2018
21:37:50
что по сути и есть это самое Unix time stamp

Sergey
13.02.2018
21:38:03

Evgeniy
13.02.2018
21:38:07
которое как раз в laravel в orm юзается и имена колонок

Google

Evgeniy
13.02.2018
21:38:49
раз это не говорили можно считать что угодно
ну и сумму по spent_time надо в select сделать

Valentin
13.02.2018
21:41:30

Evgeniy
13.02.2018
21:41:37
хотя вообще колонка spent_time не особо нужна ибо она высчитывается как ended_at - created_at

Valentin
13.02.2018
21:42:07

Evgeniy
13.02.2018
21:42:13

Valentin
13.02.2018
21:43:28
Вот в этом и проблема

Evgeniy
13.02.2018
21:43:38
лучше всего такой вопрос на http://sqlfiddle.com/ задавать задав струткуру в качестве примера с одним двумя тасками
и сказать что ты ожидаешь получить на конкретном примере

Sergey
13.02.2018
21:44:16
вжух


Evgeniy
13.02.2018
21:45:34
диапазона нет

Google

Evgeniy
13.02.2018
21:46:06
про sum я выше написал что надо сумировать

Sergey
13.02.2018
21:47:05
или ты про пересечения?
секу

Shmaltorhbooks
13.02.2018
21:49:21
а что добавлять в суммарное время, если created_at, например, не вписывается в диапазон, а ended_at вписывается?

Evgeniy
13.02.2018
21:49:23
я говорил что представить проще всего числом

Shmaltorhbooks
13.02.2018
21:49:40
да здравствуют greater или if'ы

Valentin
13.02.2018
21:50:00

Sergey
13.02.2018
21:50:07

Evgeniy
13.02.2018
21:50:27
ну это прискорбно
плюс постгресса в специальных типах но у меня на работе mysql хорошо хоть с innodb

Sergey
13.02.2018
21:53:17
все ваш мускуль умеет

Evgeniy
13.02.2018
21:53:38
я знаю что он умеет даты
и что есть 2 типа дат, timestamp и datetime
и что есть извращенцы что хранят в int вместо timestamp

Shmaltorhbooks
13.02.2018
21:54:48
так а задача в том, чтоб формат выбрать или селект написать?)

Evgeniy
13.02.2018
21:55:00
ну не знай

Google

Evgeniy
13.02.2018
21:55:23
мне кажется сумму и вычитание дат сделать довольно просто

Sergey
13.02.2018
21:55:32

Shmaltorhbooks
13.02.2018
21:55:38
во всех этих интервальных выборках всегда есть 3 кейса, которые надо как-то разруливать (иногда это больше вопросы к бизнесу, чем к девелоперу):
- начало или конец не попадют в интервал
- и начало и конец вне интервала, но всё вписывается в рамки
- и начало и конец внутри интервала

Sergey
13.02.2018
21:56:10
ну то есть у тебя в базе 01.01 12:00 - 01.05 12:00 - то есть 5 дней. А у нас рэйдж с 2-ого по 4-ого и должно вернуть 3 дня.

Shmaltorhbooks
13.02.2018
21:57:27
если надо посчитать сколько времени потрачено на таску в январе, а при этом начало таски в декабре, конец - в феврале, то не всё так просто)

Evgeniy
13.02.2018
21:58:09

Shmaltorhbooks
13.02.2018
21:58:10
если посчитать сколько в январе, а начало и конец у неё в середине января, то where просто как мычание

Valentin
13.02.2018
21:58:12

Shmaltorhbooks
13.02.2018
21:59:02
если по бизнес-логике ок, то всё ок

Evgeniy
13.02.2018
21:59:53
может 2 месяца ?

Valentin
13.02.2018
22:01:22
а почему именно 2 дня ?
ну если брать что дата указана в американском формате, у нас есть таск который начался в 2018-05-01 и закончился в 2018-10-01 (5 дней над ним работали)
по запросу мы указали range в 2 дня, с 06.01 по 08.01

Shmaltorhbooks
13.02.2018
22:01:28
самый утрированный пример - таска создана в 1980 году, и закончена вчера. надо посчитать сколько времени на неё потрачено в прошлом декабре

Sergey
13.02.2018
22:01:56
могу просто дать подсказку

Valentin
13.02.2018
22:02:09
как называется то что я ищу

Sergey
13.02.2018
22:02:24
http://sqlfiddle.com/#!17/3ce0c/16
осталось дописать where

Google

Valentin
13.02.2018
22:04:10

Sergey
13.02.2018
22:04:19
конечно можно)

Shmaltorhbooks
13.02.2018
22:04:27
можно
но индексы вроде не оч рады будут
но это не точно

Valentin
13.02.2018
22:04:43
Тогда это не подсказка а решение сразу)
В любом случае большое спасибо)

Sergey
13.02.2018
22:05:48
решение Жени тоже будет работать
и индексы будут чуть более рады (если у тебя постгрес))))
хотя в мускуле вроде merge индексы тоже есть...
ну и всегда есть union/join
я просто не понял надо ли тебе учитывать только время внутри рэйджа или вариант Жени решает твою проблему целиком?

Evgeniy
13.02.2018
22:07:28
твой вариант Сергей решает
он просто не учитывал Least и Greatest в подсчете суммы

Sergey
13.02.2018
22:08:04
ну то есть можно скрестить)

Evgeniy
13.02.2018
22:08:08
ну да
where он добавит)

Sergey
13.02.2018
22:08:24
а вот интересно - как постгрес себя поведет с least и greatest
врядли оно индексы юзало бы... хотя в теории могло

$iD
14.02.2018
07:49:33
кто-нибудь юзает/ал phake/phake есть идеи чем он пизже тех же мокери и професи?

Google

Sergey
14.02.2018
08:22:20
смотрю документацию и ужасаюсь
partial mock (для абстрактных классов например), возможность замокать приватный метод (пиздец просто)...
ну короч это как runkit для юнит тестов
потенциально полезная штука когда ты имеешь дело с диким легаси кодом который по другому не протестить в изоляции
но ИМХО и не надо такое тестить в изоляции

Ivan
14.02.2018
08:35:44
пишу сайт знакомств. Как лучше всего реализовать "пользователь онлайн/ был онлайн Х часов назад? Разумно ли привязываться к id_session?

Dmitriy
14.02.2018
08:36:34
у тебя есть дата и время когда пользователь последний раз "зашел"

Alexandr
14.02.2018
08:53:33
Нужно понимать что каждый раз перезаписывать это дрочь бд на микро записи. Поэтому записывать надо не чаще чем раз в 10 минут

Dmitriy
14.02.2018
08:54:19
смотря сколько пользователей
если не много то можно и забить

Alexandr
14.02.2018
08:58:25
ОК забей.

V
14.02.2018
09:01:45

Sergey
14.02.2018
09:07:44

V
14.02.2018
09:11:26
Приемочные
у меня тоже легаси проект, в данном случае мне эта либа помошник, т.к. переписывать никак а рефакторинг дело тошное. В моем случае (когда пришел) не было вообще никаких тестов, никакой автозагрузки. Пришлось пилить тесты, сами по себе они ужасные (в своей реализации, с моками и прочим, быстро устаревают т.к. меняется бизнес логика), но хоть 24% коверадж есть. Явно лучше чем ничего. А насчет приемочных тестов, это апишку дёргать?

Sergey
14.02.2018
09:17:51
Это тестить с точки зрения юзера, можно даже через ui
Покрытие будет больше и позволяет рефакторить быстрее, а там уже и юниты

Alexander
14.02.2018
09:39:33

Ivan
14.02.2018
09:40:17
Увы с вебсокетами не работал - так что больше времени потрачу на освоении их
Ну спасибо за совет