2016-08-10 4 views
0

В таблице, на которой я смотрю, есть столбцы с фиксированными датами - EnteredDateTime и AuditDateTime. Мне нужна помощь, чтобы найти записи, которые старше, чем 1 день и менее чем за 7 дней старыхMYSQL - Как найти записи в диапазоне дат

код я использую в данный момент -

EnteredDateTime BETWEEN DATE_ADD(AuditDateTime, INTERVAL 1 day) AND DATE_ADD(AuditDateTime, INTERVAL 7 day)

+0

Так почему же ревизия является частью запроса? – Strawberry

ответ

1

А в чем проблема с током запрос? Вы хотите older than 1 day and less than 7 days с сегодняшнего дня? Если да, то используйте DATE_SUB и NOW():

EnteredDateTime BETWEEN DATE_SUB(NOW(), INTERVAL 1 day) 
        AND DATE_SUB(NOW(), INTERVAL 7 day) 

Или, если один из столбцов ответа этого условия?

EnteredDateTime BETWEEN DATE_SUB(NOW(), INTERVAL 1 day) 
        AND DATE_SUB(NOW(), INTERVAL 7 day) 
OR AuditDateTime BETWEEN DATE_SUB(NOW(), INTERVAL 1 day) 
         AND DATE_SUB(NOW(), INTERVAL 7 day) 

Вы можете использовать GREATEST() или LEAST(), если вы знаете, какой из дат, которые вы хотите проверить на (низкий или высокий), чтобы избежать использования OR.

Смежные вопросы