Ok, here's what I did (in postgresql, but it should port pretty easy)
CREATE TABLE signs (
id serial NOT NULL,
sign text,
startdate date,
enddate date
);
INSERT INTO signs VALUES (2, 'Taurus', '2000-04-20', '2000-05-20');
INSERT INTO signs VALUES (3, 'Gemini', '2000-05-21', '2000-06-20');
INSERT INTO signs VALUES (4, 'Cancer', '2000-06-21', '2000-07-22');
INSERT INTO signs VALUES (5, 'Leo', '2000-07-23', '2000-08-22');
INSERT INTO signs VALUES (6, 'Virgo', '2000-08-23', '2000-09-22');
INSERT INTO signs VALUES (7, 'Libra', '2000-09-23', '2000-10-22');
INSERT INTO signs VALUES (8, 'Scorpio', '2000-10-23', '2000-11-21');
INSERT INTO signs VALUES (9, 'Sagitarius', '2000-11-22', '2000-12-21');
INSERT INTO signs VALUES (11, 'Aquarius', '2000-01-20', '2000-02-18');
INSERT INTO signs VALUES (12, 'Pisces', '2000-02-19', '2000-03-20');
INSERT INTO signs VALUES (13, 'Aries', '2000-03-21', '2000-04-19');
INSERT INTO signs VALUES (10, 'Capricorn', '2000-12-22', '2000-12-31');
INSERT INTO signs VALUES (14, 'Capricorn', '2000-01-01', '2000-01-19');
zodiac=# select * from signs where '2000-03-18' between startdate and enddate;
id | sign | startdate | enddate
----+--------+------------+------------
12 | Pisces | 2000-02-19 | 2000-03-20
(1 row)
zodiac=# select * from signs where '2000-01-08' between startdate and enddate;
id | sign | startdate | enddate
----+-----------+------------+------------
14 | Capricorn | 2000-01-01 | 2000-01-19
(1 row)
zodiac=# select * from signs where '2000-12-28' between startdate and enddate;
id | sign | startdate | enddate
----+-----------+------------+------------
10 | Capricorn | 2000-12-22 | 2000-12-31
(1 row)
Basically, take whatever date you have and change the year to 2000 and this should work.