繁体   English   中英

搜索mysql数据库的日期范围

[英]Search mysql database for date range

我有一个数据库,用户输入日期,其中包括下拉日历,日期格式为21-NOV-2012格式。 有没有办法用日期范围搜索数据库? 我目前使用以下搜索日期::

sql ="SELECT * FROM ircb WHERE  date LIKE '%$term1%' AND date LIKE '%$term2%'  LIMIT $start_from, 15";

term1是月份,而term2是年份,这不允许月内的日期范围。 任何帮助表示感谢,谢谢

我知道这并没有真正解决你的问题,但我想这是一个测试(并且你可以访问数据库),并且会冒着被告知你更好的方法而冒险的风险,因为如果不告诉你我会感到内疚什么是正确的方法:

您应该在数据库中有一个Date类型字段(我假设是mysql)并将整个日期存储在该字段中,并且mysql可以使用该日期进行搜索(通常标准日期格式为YYYY-MM-DD)。

你只需要这样做:

SELECT * FROM TABLE WHERE date > 'your date';
or ........................... < 'your date';
or .................WHERE date BETWEEN 'date1' AND 'date2';

它将允许您以更容易和人类可读的方式执行这些操作。

如果你有兴趣,也可以查看日期时间 ,因为你可以做同样的事情,但当天的时间也包括在同一个领域! :d

仔细查看字段类型,因为使数据库健康和优化是必不可少的。

 date >= '$term2-$term1-01' AND date < DATE_ADD( '$term2-$term1-01', INTERVAL 1 MONTH)

我认为这应该有效。

sql ="SELECT * FROM ircb WHERE date BETWEEN '$term1' AND '$term2' LIMIT $start_from, 15";

BETWEEN将允许您获取范围日期,您可以删除那些LIKE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM