查询特定月份生日的数据库

时间:2011-02-18 18:25:39

标签: php mysql datetime

我正在尝试对数据库进行查询,其中我的联系人的日期格式为生日,如(1980-03-13)(年 - 月 - 日)。但我想查询我的数据库(03)月内所有生日。这怎么可能?

如果有人可以放弃一些非常感激的光。

PS。我正在使用PHP对MySQL进行查询。

更新:MySQL表格CONTACTS有一个(DOB字段)格式=(日期)。

5 个答案:

答案 0 :(得分:3)

select * from table
where Month(column) = 3

如果是一个字符串

select * from table
    where Month(cast(column as datetime)) = 3

答案 1 :(得分:2)

您可以使用SELECT MONTH('2008-02-03')获取月份编号,将日期替换为您的列。

答案 2 :(得分:1)

您可以使用EXTRACT()函数。在WHERE子句中:

WHERE EXTRACT(MONTH FROM dateColumn) = 3

答案 3 :(得分:0)

“尼克·罗兰多”(Nick Rolando)给出的答案对我有用。

这是我解决与您相同的问题的方式:

SELECT date_of_birth FROM customer_id
WHERE EXTRACT(MONTH FROM date_of_birth) = 3;

使用“ WHERE”子句,“ EXTRACT”函数通过在括号中定义“ MONTH”属性来完成所有工作,并且知道如何仅提取包含月份的数据:3

ALSO的“出生日期”列必须具有正确的日期格式,例如:“ 1999-03-29”

(顺便说一句,这在PostgreSQL 12上对我有用)

答案 4 :(得分:-1)

您可以对此数据执行各种字符串操作,但它将是sloooow。我建议将日期保留在DATE列中,加上月份作为单独的INT列。这将复制一部分数据,但允许您有效查询(特别是如果您索引月份)。原因:字符串操作相对较慢,函数调用无法编入索引。