Вы не говорите, какой тип данных у вашей десятизначной записи entry_date.
Если это тип DATETIME
, вы делаете это сложнее, чем нужно. Вот запрос.
SELECT productid, productname
FROM products
WHERE entry_date >= str_to_date('01-01-2008', '%d-%m-%Y')
AND entry_date < str_to_date('01-11-2008', '%d-%m-%Y')
Обратите внимание, что оператор BETWEEN
не подходит для типов DATETIME
. Если вы не укажете время, система предполагает, что вы имеете в виду полночь в указанную вами дату. Поэтому вам необходимо указать первый день ПОСЛЕ выбранной даты окончания (в данном случае выбранная вами дата окончания была 31 октября 2008 года, поэтому вам следует использовать 1 ноября 2008 года). Затем вам нужно использовать <
вместо <=
для верхней части диапазона, как показано.
Если вам не нужно использовать UNIX_TIMESTAMP
типы данных, не используйте. Они менее гибкие, чем обычные DATETIME
типы.
Если вы не возражаете указать свои даты в формате ГГГГ-ММ-ДД, это еще проще:
SELECT productid, productname
FROM products
WHERE entry_date >= '2008-01-01'
AND entry_date < '2008-11-01'