mysql: 天数之间的细微差别
mysql: slightest difference between days
我想编写一个查询,以显示一个月中的给定日期与表中的日期之间最细微的差异。
select * from students where 5 = month(birthdate)
我想搜索五月出生的学生,现在我想获得给定日期与生日日期之间的细微差异。
例如:
艾伦 1980-05-03
鲍勃 1978-05-07
然后我将日期设置为 8。结果应该显示 Bob。查询应该是什么样的?
您可以使用:
SELECT *
FROM students
WHERE month(birthdate) = 5
ORDER BY ABS(DAY(NOW()) - DAY(birthdate))
LIMIT 1;
当您仅在一个月范围内进行比较时,您可以轻松地了解特定月份的日期之间的差异。
注意:这不会处理平局。
在这里你设置日期,你选择所有生日与你选择的日期最接近的学生。
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() returns 给定日期的月中第 (1-31) 日。
我想编写一个查询,以显示一个月中的给定日期与表中的日期之间最细微的差异。
select * from students where 5 = month(birthdate)
我想搜索五月出生的学生,现在我想获得给定日期与生日日期之间的细微差异。
例如:
艾伦 1980-05-03 鲍勃 1978-05-07
然后我将日期设置为 8。结果应该显示 Bob。查询应该是什么样的?
您可以使用:
SELECT *
FROM students
WHERE month(birthdate) = 5
ORDER BY ABS(DAY(NOW()) - DAY(birthdate))
LIMIT 1;
当您仅在一个月范围内进行比较时,您可以轻松地了解特定月份的日期之间的差异。
注意:这不会处理平局。
在这里你设置日期,你选择所有生日与你选择的日期最接近的学生。
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() returns 给定日期的月中第 (1-31) 日。