У меня есть клиентская таблица, которая отображает, если это первый раз, когда клиент посетил это место, и индивидуальный идентификатор клиента, нужно указать, нужно ли пользователю возвращаться дольше 6 (360 минут) часов.
Проверьте код, чтобы увидеть, как далеко мне удалось самостоятельно добраться:
-- schema
CREATE TABLE Client (
Id INT NOT NULL AUTO_INCREMENT,
user_name VARCHAR(50) NOT NULL,
user_id VARCHAR(30) NULL,
first_time_buying VARCHAR(3) NOT NULL,
visit_date DATETIME NOT NULL,
PRIMARY KEY(Id)
)
;
-- data
INSERT INTO Client
(user_name, user_id, first_time_buying, visit_date)
VALUES
('Fred', '1','yes' ,'2020-02-15 23:59:59'),
('Fernanda','2', 'yes', '2020-02-17 12:35:00'),
('Fred','1', 'no', '2020-02-21 15:59:09'),
('Fernanda','2', 'no','2020-03-01 11:06:39'),
('Fred','1', 'no', '2020-02-21 16:36:39)
;
созданный мною выбор:
SELECT
TIMESTAMPDIFF(MINUTE,
(SELECT t1.visit_date
from Client t1 inner join(select user_name, max(Id) as maxID from Client
group by user_name) t2 on t1.user_name = t2.user_name
and t1.Id = t2.maxID
where t1.user_id = '2'),
CURRENT_TIMESTAMP()) AS Difference
мне также нужно вычесть текущую метку времени с последним временем, когда пользователь вошел в место, и если его менее 360 минут возвращают ноль, иначе возвращают истину или количество минут.
Например:
, если в последний раз он / она посещал Магазин был до 6 ч. go Я ожидал получить значение NULL или FALSE, если оно больше, чем я ожидал получить значение или true.
пс: оно должно сравниваться с текущим значением метки времени .
Я могу предоставить дополнительную информацию только при необходимости.