SQL-запрос для записи, где текущая дата находится внутри даты начала / окончания

0

Использование MySQL

Два поля, с которыми мне нужно сравнить текущую дату, это: startDate, endDate

Мне нужен запрос примерно так:

SELECT * FROM `{$this->_sPrefix}` 
WHERE `profileID` = '{$iProfileId}' 
AND CUR_DATE() 
BETWEEN `startDate` AND `endDate` 
ORDER BY `added` DESC";

Это мой новый запрос, но я не знаю, как выполнять обе проверки: profileID и дату вместе.

  • 0
    Пожалуйста, не редактируйте свой вопрос, чтобы изменить его. Скорее, попросите ваше продолжение в ответ на ответ. Я отредактировал свой ответ ниже, чтобы также ответить на ваш новый вопрос.
Теги:

3 ответа

2
Лучший ответ

Вы должны это сделать, но вы должны использовать BETWEEN:

 WHERE CUR_DATE() BETWEEN `startDate` AND `endDate`

Какую базу данных SQL вы используете?

Изменить (в ответ на редактируемый вопрос и, пожалуйста, не меняйте вопрос!):

Ваш запрос выглядит правильно, считая, что profileID, startDate и endDate - все столбцы в одной таблице.

Кроме того, если это приложение, ориентированное на веб-интерфейс, подумайте об избежании такого рода динамического генерации SQL, поскольку оно заставляет ваше приложение открывать атаки SQL-инъекций.

1
... WHERE CUR_DATE() BETWEEN `startDate` AND `endDate` ORDER ...
1
...WHERE `startDate` <= CUR_DATE() and `endDate` >= CUR_DATE()
  • 0
    Почему за это проголосовали? Это правильный ответ на вопрос, не так ли? Тот факт, что другие ответы не выглядят так, не означает, что они неправильные.
  • 0
    @Larry Lustig: мне было интересно то же самое. Я начал думать, что, может быть, я изменил свое меньше и больше, чем.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню