Mysql选择当月有生日的用户

Mysql选择当月有生日的用户,mysql,Mysql,我在数据库中的varchar列中存储了这样的生日 年月日 如何直接从MySQL查询中选择当月的生日人 并显示如何使用PHP 谢谢首先,不要将日期存储为VARCHAR。到日期 修复后,请使用以下多种方法之一: 您应该将列类型更改为DATE。e、 g ALTER TABLE `people` CHANGE `dob` `dob` DATE NOT NULL; 这样,您就可以使用MySQL查询日期函数来过滤结果 SELECT * FROM people WHERE MONTH(dob) = MON

我在数据库中的varchar列中存储了这样的生日

年月日

如何直接从MySQL查询中选择当月的生日人

并显示如何使用PHP


谢谢

首先,不要将日期存储为
VARCHAR
。到
日期

修复后,请使用以下多种方法之一:


您应该将列类型更改为
DATE
。e、 g

ALTER TABLE `people` CHANGE  `dob` `dob` DATE NOT NULL;
这样,您就可以使用MySQL查询日期函数来过滤结果

SELECT * FROM people WHERE MONTH(dob) = MONTH(CURDATE()) AND YEAR(dob) = YEAR(CURDATE())

由于使用了VARCHAR字段而不是日期字段

您必须强制转换该值,然后使用正常的日期函数。像

SELECT * 
   FROM table_name 
   WHERE MONTH(CAST(col_name AS DATE)) = MONTH(NOW());

假设日期存储为
%m/%d/%Y
此格式,您可以根据需要更改此格式

%m
我们只选择月份,并将其与当前月份
月份(NOW())
进行比较

用列替换
DOB
,用表名替换
table

select * from table
  where date_format(str_to_date(DOB, '%m/%d/%Y'), '%m') = MONTH(NOW());; 

我将日期作为时间戳存储在表中,所以我创建了一个类似这样的查询。它工作得很好

不要使用varchar作为日期。

select first_name, last_name, date_format(FROM_UNIXTIME(`dateofbirth`), '%m/%d/%Y') as dob from users where date_format(FROM_UNIXTIME(`dateofbirth`), '%m') = MONTH(NOW())

你能更改数据库吗?或者你做不到,现在你在寻找解决方案?有你需要的一切。请在继续之前花点时间在这些材料上检查我的答案可能对你有帮助
NOW()
是一个函数,不是常数。但它仍然是最好的answer@jaczes它确实回答了当前的问题。但最好的是有争议的。@PauloJoséOliveiraRosa也许,因为我的括号打字错误,它不起作用?让我知道你的桌子结构。必须工作。数据以dd/mm/yyyyy格式存储在varchar colmun中。转换帮助?检查链接或进行谷歌搜索。但是您需要添加一个新的
date
列,将
varchar
迁移到
date
,然后删除旧的
varchar
列。如果需要,请重命名新的
date
列。只有当您希望某人出生在特定的年份和月份,而不仅仅是month@Garytje我将“当前月份”解释为我们当前所在的月份(指今年)
select * from table
  where date_format(str_to_date(DOB, '%m/%d/%Y'), '%m') = MONTH(NOW());; 
For Get User list whose birthday in current month in mysql if field datatype is date 
        $Toaday = '%'.date('-m-').'%';

        $query = " select * from client where birth_date LIKE '$Toaday' ";

    In your case declare $Today = '%'.date('/m/').'%';
select first_name, last_name, date_format(FROM_UNIXTIME(`dateofbirth`), '%m/%d/%Y') as dob from users where date_format(FROM_UNIXTIME(`dateofbirth`), '%m') = MONTH(NOW())