我有一个数据库,用户输入日期,其中包括下拉日历,日期格式为21-NOV-2012格式。 有没有办法用日期范围搜索数据库? 我目前使用以下内容搜索日期::
sql ="SELECT * FROM ircb WHERE date LIKE '%$term1%' AND date LIKE '%$term2%' LIMIT $start_from, 15";
term1是月份,而第2项是年份,这不允许月份内的日期范围。 感谢任何帮助,谢谢
答案 0 :(得分:2)
我知道这并没有真正解决你的问题,但我想这是一个测试(并且你可以访问数据库),并且会告诉你一个更好的方法,因为我会感到内疚,因为我会感到愧疚告诉你什么是正确的方法:
您的数据库中应该有一个Date类型字段(我假设是mysql)并将整个日期存储在该字段中,并且mysql可以使用该日期进行搜索(通常标准日期格式为YYYY-MM-DD)。 / p>
你只需要这样做:
SELECT * FROM TABLE WHERE date > 'your date';
or ........................... < 'your date';
or .................WHERE date BETWEEN 'date1' AND 'date2';
它将允许您以更容易和人类可读的方式进行这些操作。
如果您感兴趣的话,还可以查看datetime,因为您可以这样做但当天的时间也包含在同一个字段中! :D
仔细查看字段类型,因为使数据库健康和优化至关重要。
答案 1 :(得分:0)
date >= '$term2-$term1-01' AND date < DATE_ADD( '$term2-$term1-01', INTERVAL 1 MONTH)
答案 2 :(得分:0)
我认为这应该有用。
sql ="SELECT * FROM ircb WHERE date BETWEEN '$term1' AND '$term2' LIMIT $start_from, 15";
BETWEEN
可让您获取范围日期,并可以删除LIKE
。