2011-02-08 2 views
0

У меня есть 2 столбца, начало и конец.Сравните даты MySQL?

Мне нужно отфильтровать результаты, чтобы сегодняшняя дата была между началом и концом. Дата сохраняется в синтаксисе MM/DD/YYYY. например 02/05/2011

Может ли кто-нибудь показать мне, как это делается, пожалуйста?

"SELECT * FROM albums WHERE active=1 AND ..." 

Спасибо.

+0

Это ваша собственная схема? Можете ли вы преобразовать даты из обычного текста в фактические даты? – cherouvim

+3

Дата хранится с использованием неправильного типа данных. Используйте DATETIME или DATE для хранения дат. – Mchl

ответ

1
select 
    * 
from 
    albums 
where 
    active=1 
    and STR_TO_DATE(begin_date,'%m/%d/%Y') <= CURDATE() 
    and CURDATE() <= STR_TO_DATE(end_date,'%m/%d/%Y') 

Но даты не должны быть сохранены как varchar. Они должны храниться как date с.

0
SELECT 
    * 
FROM 
    albums 
WHERE 
    active=1 
    AND CURRENT_DATE BETWEEN begin_date AND end_date; 
Смежные вопросы