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


Selecting data from database based on date

希望你一切顺利,

我有一个包含人员信息的表,表中有一个注册日期列,我想获取特定日期的注册人员。

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

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

  1. 通过输入完整日期:这将只适用于完整日期,例如,如果我输入2016-1-1,我将获得该日期的结果,但如果我想返回2016-1或2016年注册的所有人,我的查询将失败,因为这些值与表中的日期不相等!

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

有什么想法吗?!还有更好的正则表达式吗?!

问候。

至少在我看来,最好的解决方案是在查询中执行。

所以你想要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日期函数的完整列表,请查看文档。

我想补充一点,您还可以查询特定日期之间的结果。

我经常做的是:

// 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';