oracle 数据库
select name,birthday from
(select t.name,t.birthday
from tw t where birthday is not null
order by
abs(to_number(to_char(birthday,'mm'))-to_number(to_char(sysdate,'mm'))),
abs(to_number(to_char(birthday,'dd'))-to_number(to_char(sysdate,'dd')))) a
where rownum<5
什么数据库?如果是sql server
select top 5 * from
(select name,cast( cast(year(getdate()) as char(4))+ '-' + cast(monthbirthday) as char(2))+'-'+cast( daybirthday) as char(2)) as datetime) as dd from table) a
where dd>getdate()
order by dd
其他的可以效仿
ps楼上的逻辑错误!
Microsoft OLE DB Provider for SQL Server 错误 '80040e31'
什么数据库?如果是sql server
select top 5 * from
(select name,cast( cast(year(getdate()) as char(4))+ '-' + cast(monthbirthday) as char(2))+'-'+cast( daybirthday) as char(2)) as datetime) as dd from table) a
where dd>getdate()
order by dd
改一下
select top 5 * from table where DATEPART(month, birthday)>=DATEPART(month, GETDATE()) and DATEPART(day, birthday)>=DATEPART(day, GETDATE()) order by DATEPART(month, birthday),DATEPART(day, birthday)