狗年出生日期查询

时间:2011-12-08 16:51:26

标签: mysql

我在mySQL中有一个表:

---Dogs---
id        int
birthdate date

平均而言,每年一只狗的生命增加7年。 基本上我想知道今天是狗的实际生日还是他们的狗生日。每个狗生日之间约52天。我根本无法弄清楚如何写这个查询。

我希望返回的行看起来像这样:

|-----------------|
| id | birthdate  |
|-----------------|
| 40 | 2003-12-08 |
| 59 | 2007-12-08 |
| 87 | 2005-06-07 | <- 
| 33 | 2009-11-05 | <- Not sure if these would be accurate but want them to
|    |            |    return if today worked out being their 'dog birthday'

另外,他们的实际生日对我来说更重要。我不想依赖date_diff计算。如果生日=今天或生日=计算日期。

我想我一起吃了它。我这样做了,似乎按照我想要的方式工作:

select distinct(d.id) from Dogs d
where MONTH( CURDATE( ) ) = MONTH( d.birthdate  )
AND DAYOFMONTH( CURDATE( ) ) = DAYOFMONTH( d.birthdate )
or
datediff (curdate(), d.birthdate) % 52 = 0

2 个答案:

答案 0 :(得分:3)

使用模数: -

select id
from Dogs
where datediff (curdate(), birthday) %52 = 0;

答案 1 :(得分:0)

完全相同的计算,就好像它是人类一样 - 然后乘以7。