2016-05-22 1 views
2

月のある日とテーブルの日の間のわずかな違いを示すクエリを書いてみたいと思います。mysql:日々のわずかな違い

select * from students where 5 = month(birthdate) 

私は5月に生まれ、今私は、特定の日や誕生日の日の間のわずかな違いを取得したいし、学生を検索したいです。例えば

アラン・1980年5月3日 ボブ1978年5月7日

と私はボブを見せなければならない8.結果に日を設定します。クエリはどのように見えますか?

答えて

1

あなたは使用することができます

SELECT * 
FROM students 
WHERE month(birthdate) = 5 
ORDER BY ABS(DAY(NOW()) - DAY(birthdate)) 
LIMIT 1; 

SqlFiddleDemo

だけ一ヶ月の範囲で使用すると、簡単に特定の月内の日の間の差を得ることができます比較すると。

注:これはネクタイを処理しません。

+0

はいこれは機能しません。 – 1337

+0

@ 1337更新された内容を見る – lad2025

+1

Nice it works thx man :) – 1337

0

ここでは、曜日を設定します。選択した日に最も近い生年月日に一致する誕生日のすべての生徒を選択します。

Set @Day = 5; -- your number 
Select * from students 
where month (birthdate)=5 -- set this to month 
Having birthdate = (select min(birthdate) from students order by abs(@Day - dayofmonth(birth date)) desc limit 1); 

Dayofmonth()は、指定された日付の月の日(1-31)を返します。

関連する問題