SQL-запрос для отображения, если две даты не превышают указанную дату
Как я могу выбрать данные, которые больше, чем указанная дата (последняя запрошенная дата), и исключить их, если оба create_at И удаленные_at больше указанной даты?
Например, last_requested_date - "2017-03-09 15:41:00". Затем я хочу показать страну, которая была создана / обновлена / удалена после '2017-03-09 15:41:00'. Но я не хочу показывать страну, которая была создана и затем удалена по истечении last_requested_date (пример create_at '2017-03-09 15:41:01' и dele_at '2017-03-09 15:41:02')
Мой код похож на:
SELECT * FROM countries
WHERE (created_at > '2017-03-09 15:41:00' OR
updated_at > '2017-03-09 15:41:00' OR
deleted_at > '2017-03-09 15:41:00') AND
NOT (created_at > '2017-03-09 15:41:00' AND deleted_at > '2017-03-09 15:41:00')
Но выход не был, я ожидал. Любое решение будет оценено! Спасибо
3 ответа
SELECT * FROM countries
WHERE (created_at > '2017-03-09 15:41:00' OR
updated_at > '2017-03-09 15:41:00' OR
deleted_at > '2017-03-09 15:41:00') AND id NOT IN
(SELECT id FROM countries where created_at > '2017-03-09 15:41:00' AND deleted_at > '2017-03-09 15:41:00')
Если я правильно понял ваше требование, то ваш запрос очень близок к желаемому результату. вам может потребоваться добавить еще одно условие, чтобы проверить разницу между датой создания и датой удаления, чтобы избежать стран, которые создаются и удаляются сегодня самостоятельно.
SELECT *
FROM countries
WHERE (created_at > '2017-03-09 15:41:00' OR
updated_at > '2017-03-09 15:41:00' OR
deleted_at > '2017-03-09 15:41:00'
) AND (created_at > '2017-03-09 15:41:00' AND
deleted_at > '2017-03-09 15:41:00' AND
DATEDIFF(created_at,deleted_at) > 0)
Проверь это.
SELECT * FROM countries
WHERE (created_at > '2017-03-09 15:41:00' OR
updated_at > '2017-03-09 15:41:00' OR
deleted_at > '2017-03-09 15:41:00') AND
datediff(SECOND,created_at, deleted_at) > 60
Здесь мы проверяем разницу между двумя датами (create_at и delete_at), которые должны быть больше 60 секунд. Вы можете редактировать их в соответствии с требованиями.