select *,datediff(dd,birthday,getdate()) as 还有天数
order by datediff(dd,birthday,getdate()) asc
order by datediff(dd,birthday,getdate()) asc
解决方案 »
- 关于where后面的执行顺序问题
- 请教一个查询语句
- 如何统计出业务员所拥有的客户数前10名的数据,谢谢各位
- 请帮我看看SET @cmd = 'EXEC sp_by_id' + ' ' + convert(nvarchar(50),@bID) + ',' + @ret + ' output'
- 如何将时间改为08:00:00??????
- 我是新手,请高手指导一下,如何写下面的sql语句,谢谢
- 死锁问题,在线等!
- 相当急!本地服务器不能连接,高手请帮助
- SQLServer+Microsoft Outlook发邮件,如何在不启动outlook的情况下发邮件呀
- sql datetime数据类型字段如何插入数据
- 这样的数据库设计该如何处理?
- 新手提问:如何将Excel中的数据导入SQL SERVER
ABS(datediff(day,getdate(),'1900'+right(CONVERT(varchar(10),birthday,120),6)))
ABS(datediff(day,getdate(),'1900'+right(CONVERT(varchar(10),birthday,120),6)))
ABS(datediff(day,getdate(),'1900'+right(CONVERT(varchar(10),birthday,120),6)))
go
select *,banlance_day = datepart(dd,birthday-getdate()) from table_birthday
order by datepart(YYYY,(getdate()-birthday)),datepart(mm,(getdate()-birthday)),datepart(dd,(getdate()-birthday)) desc
select * from [table] order by
case
when convert(char(4),getdate(),120)+right(CONVERT(varchar(10),birthday,120),6)<CONVERT(varchar(10),getdate(),120) --今年生日以过的人,就要计算到下一年的生日
then abs(datediff(day,cast(year(getdate()+1 as varchar)+ right(CONVERT(varchar(10),birthday,120),6),getdate()))
else convert(char(4),getdate(),120)+right(CONVERT(varchar(10),birthday,120),6)<CONVERT(varchar(10),getdate(),120)
abs(datediff(day,cast(year(getdate() as varchar)+ right(CONVERT(varchar(10),birthday,120),6),getdate()))
end要是碰到那个生的巧的2月29生日,那就有得烦了,还不如做个函数吧.:)