NOW()
が非うるう年2011
ある場合は、問題はあなたが生まれた年に対してDAYOFYEAR
を使用しているため、余分な一日になります2月29日後にうるう年に生まれた誰から生じます。あなたがDAYOFYEAR
を行う
DAYOFYEAR('2004-04-01') // DAYOFYEAR(e.birthdate) Returns 92
DAYOFYEAR('2011-04-01') // DAYOFYEAR(NOW()) Returns 91
は、あなたは現在の年からの誕生日、出産のない年が必要です。
ので、代わりに:
DAYOFYEAR(e.birthdate)
あなたはこのように、今年に変換することができます:
'2004-04-01'
へ:の誕生日を変換
DAYOFYEAR(DATE_ADD(e.birthdate, INTERVAL (YEAR(NOW()) - YEAR(e.birthdate)) YEAR))
を
'2011-04-01'
だから、ここで変更クエリです:2月29日に生まれた
SELECT e.id,
e.title,
e.birthdate
FROM employers e
WHERE DAYOFYEAR(curdate()) <= DAYOFYEAR(DATE_ADD(e.birthdate, INTERVAL (YEAR(NOW()) - YEAR(e.birthday)) YEAR))
AND DAYOFYEAR(curdate()) +14 >= DAYOFYEAR(DATE_ADD(e.birthdate, INTERVAL (YEAR(NOW()) - YEAR(e.birthday)) YEAR))
人々はまだ日60
非閏年の3月1日、に分類されます。ここで
は、まずあなたが 'DAYOFYEAR'機能のバグを主張しようとしていた時に思った問題に対処信じています。だからもちろん、DAYOFYEARはうるう年に違います。なぜそれが問題なのか説明する必要があります。 – Alnitak
そのクエリで正確に何を達成しようとしていますか? –
作品を定義します。もちろんDayOfYearはうるう年に違いますが、そこにもう一日あります。 –