Php 下面的MySQL查询应该是什么?

Php 下面的MySQL查询应该是什么?,php,mysql,Php,Mysql,我希望在仪表板上显示即将到来的生日记录。我有MySQL表“contacts”,它 有dob DATE YYYY-MM-DD字段。我想检索生日即将到来的所有记录 在接下来的15天内。e、 g是:生日是1986-03-24,应该是结果。您必须在mysql查询中使用日期: SELECT FROM table_name WHERE timestamp_row BETWEEN '2011-01-01 00:00:00' AND '2011-01-02 23:59:59'; 你正在做用户的B'

我希望在仪表板上显示即将到来的生日记录。我有MySQL表“contacts”,它

有dob DATE YYYY-MM-DD字段。我想检索生日即将到来的所有记录


在接下来的15天内。e、 g是:生日是1986-03-24,应该是结果。

您必须在mysql查询中使用日期:

 SELECT FROM table_name WHERE timestamp_row BETWEEN 
    '2011-01-01 00:00:00' AND '2011-01-02 23:59:59';
你正在做用户的B'Day日期,因此希望这会是格式化和选择日期的技巧

select id from my_table
 where
 timestamp < date_format(date_add(CURRENT_TIMESTAMP(), interval 1 day),
         '%Y%m%d000000' ) AND timestamp >=  date_format(CURRENT_TIMESTAMP(),
         '%Y%m%d000000')
也可以这样做

SELECT * FROM person WHERE IF  ( MONTH( NOW() ) < 12, 
     MONTH( birthdate ) = MONTH( NOW() ) + 1, MONTH( birthdate ) = 1)

您必须使用mysql查询中的日期:

 SELECT FROM table_name WHERE timestamp_row BETWEEN 
    '2011-01-01 00:00:00' AND '2011-01-02 23:59:59';
你正在做用户的B'Day日期,因此希望这会是格式化和选择日期的技巧

select id from my_table
 where
 timestamp < date_format(date_add(CURRENT_TIMESTAMP(), interval 1 day),
         '%Y%m%d000000' ) AND timestamp >=  date_format(CURRENT_TIMESTAMP(),
         '%Y%m%d000000')
也可以这样做

SELECT * FROM person WHERE IF  ( MONTH( NOW() ) < 12, 
     MONTH( birthdate ) = MONTH( NOW() ) + 1, MONTH( birthdate ) = 1)
看看MySQL的日期和时间间隔

通过使用以下两种方法,您可以获得未来15天内的记录

SELECT * FROM user WHERE dob BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 15 DAY)
用于比较出生率

MAKEDATE(YEAR(NOW() + INTERVAL 15 DAY), DAYOFYEAR(birthday)) BETWEEN CURDATE() AND CURDATE() + INTERVAL 15 DAY
看看MySQL的日期和时间间隔

通过使用以下两种方法,您可以获得未来15天内的记录

SELECT * FROM user WHERE dob BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 15 DAY)
用于比较出生率

MAKEDATE(YEAR(NOW() + INTERVAL 15 DAY), DAYOFYEAR(birthday)) BETWEEN CURDATE() AND CURDATE() + INTERVAL 15 DAY

您可以使用此查询。试用

SELECT * FROM TableName
WHERE REPLACE(BirthDate, DATEPART(YEAR, BirthDate), DATEPART(YEAR, GETDATE())) BETWEEN GETDATE() AND DATEADD(DAY, 15, GETDATE())

您可以使用此查询。试用

SELECT * FROM TableName
WHERE REPLACE(BirthDate, DATEPART(YEAR, BirthDate), DATEPART(YEAR, GETDATE())) BETWEEN GETDATE() AND DATEADD(DAY, 15, GETDATE())

试试INTERVEL对mysqlDipesh Parmar的回答对我有效。试试INTERVEL对mysqlDipesh Parmar的回答对我有效。这不会完成工作。因为日期有年份,例如,今天是2013年3月14日,我出生于1990年3月16日,我的生日在结果列表中会是什么?这是因为您的查询也考虑了年份。请考虑出生年份。@JW。thanx对于更正我没有意识到…更正它+1使用CURDATE代替现在,它将工作,这将无法完成工作。因为日期有年份,例如,今天是2013年3月14日,我出生于1990年3月16日,我的生日在结果列表中会是什么?这是因为您的查询也考虑了年份。请考虑出生年份。@JW。thanx对于更正我没有意识到…更正它+1使用CURDATE代替现在,它将工作,这将无法完成工作。因为日期有年份,例如,今天是2013年3月14日,我出生于1990年3月16日,我的生日将如何出现在结果列表中?这将无法完成工作。因为日期有年份,例如,今天是2013年3月14日,我出生于1990年3月16日,我的生日将如何出现在结果列表中?