Code: Select all
SELECT *
FROM your_table
WHERE CASE
WHEN CURTIME() BETWEEN '11:01:00' AND '15:00:00' THEN created_at BETWEEN CONCAT(CURDATE(), ' 11:01:00') AND CONCAT(CURDATE(), ' 15:00:00')
WHEN CURTIME() BETWEEN '15:01:00' AND '17:00:00' THEN created_at BETWEEN CONCAT(CURDATE(), ' 15:01:00') AND CONCAT(CURDATE(), ' 17:00:00')
ELSE created_at BETWEEN CONCAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), ' 17:01:00') AND CONCAT(CURDATE(), ' 11:00:00')
END;
Code: Select all
SELECT *
FROM your_table
WHERE created_at BETWEEN
(
CASE
WHEN CURTIME() BETWEEN '11:01:00' AND '15:00:00' THEN CONCAT(CURDATE(), ' 11:01:00')
WHEN CURTIME() BETWEEN '15:01:00' AND '17:00:00' THEN CONCAT(CURDATE(), ' 15:01:00')
ELSE CONCAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), ' 17:01:00')
END
)
AND
(
CASE
WHEN CURTIME() BETWEEN '11:01:00' AND '15:00:00' THEN CONCAT(CURDATE(), ' 15:00:00')
WHEN CURTIME() BETWEEN '15:01:00' AND '17:00:00' THEN CONCAT(CURDATE(), ' 17:00:00')
ELSE CONCAT(CURDATE(), ' 11:00:00')
END
);
Auf der ersten kann ich alle gewünschten Anweisungen hinzufügen, nicht nur die erstellte_at, zum Beispiel das Hinzufügen von AND user_id = 1.
Kann mir bitte jemand erklären, warum die zweite besser ist?
Mobile version