根据日期从数据库中选择数据

时间:2016-04-17 20:45:42

标签: php mysql regex date select

希望你很好,

我有一个包含人员信息的表格,我在表格中有一个注册日期栏,我想在特定日期提取注册人员。

更具体一点我想在html输入中输入一些日期,然后根据这个日期从数据库中选择。

我尝试了两种解决方案但实际上却失败了:

  1. 输入完整日期:这将仅使用完整日期,例如,如果我输入2016-1-1我将获得此日期的结果,但如果我想要返回所有注册的人在2016-1或2016年,我的查询将失败,因为这些值不等于表格中的日期!

  2. 使用正则表达式,没关系,但它会再次失败!如果我输入2016-1,查询将返回2016-11的结果!

  3. 所以任何想法?!还是更好的正则表达式?!

    问候。

2 个答案:

答案 0 :(得分:0)

最好的解决方案是在查询中这样做,至少在我看来。

所以你想要2016年的所有用户?

SELECT * FROM `users` WHERE year(`date_field`) = '2016'; 
// Where 'date_field' is the name of your date field

或2016/01将是:

SELECT * FROM `users` WHERE year_month(`date_field`) = '2016-01'; 
// Where 'date_field' is the name of your date field#

或者您可以将此用于2016/01:

SELECT * FROM `users` WHERE year(`date_field`) = '2016' AND month(`date_field`) = '01'; 
// Where 'date_field' is the name of your date field

有关MySql日期函数的完整列表,请查看in_array

答案 1 :(得分:0)

我想补充一点,您也可以在某些日期之间查询结果。

我经常最终做的是:

// For a certain month or period
SELECT *
FROM users
WHERE date_field >= '2016-01-01'
AND date_field <= '2016-02-01';

// For a whole year
SELECT *
FROM users
WHERE date_field >= '2016-01-01';