比如今天是8月17日: 人员编号 出生时间
1 1980-07-01
2 1983-08-26
3 1982-10-02
4 1981-07-22求(1)最近10天内过生日的编号;
(2)刚过完生日的编号(取最靠近的一个人)
各位帮忙帮忙~~~~~~~~~~~~~~~~~~~~~~~~!!
1 1980-07-01
2 1983-08-26
3 1982-10-02
4 1981-07-22求(1)最近10天内过生日的编号;
(2)刚过完生日的编号(取最靠近的一个人)
各位帮忙帮忙~~~~~~~~~~~~~~~~~~~~~~~~!!
解决方案 »
- Upage field1=avalue where xxx 会引发什么样的锁?where xxx这部分没有用到索引。
- 执行速度缓慢,能否优化一下IF语句?
- join中父表聚合函数失真,求助。
- SQL Server 基础概念,请高手帮忙解答!
- tsql: 这一行能简化么?
- 各位我有两个问题要问大家!!
- sql语句优化
- 下面两段建表的脚本哪种好一些?
- 我设计的一张表中有S_time这个字段,现在要求输入两个不同的时间,找出在这两个时间段中共有多少条记录,不知道该怎么做了,因为这两个时间段
- 怎样编写程序自动将某个文本文件的数据导入数据库的表中,并且保留原来的数据,只是增加!
- SQL查询求最小值问题?
- 重发求助:sql2008中的存储过程、触发器解密问题。
WHERE DATEDIFF(day,DATEADD(year,DATEDIFF(year,出生时间,GETDATE()),出生时间),GETDATE()) <= 10;---------SELECT TOP 1 * FROM tb WHERE DATEADD(year,DATEDIFF(year,出生时间,GETDATE()),出生时间) > GETDATE()
ORDER BY 出生时间 DESC;
2.select top 1 人员编号 from tb order by 出生时间 desc
WHERE ABS(DATEDIFF(day,DATEADD(year,DATEDIFF(year,出生时间,GETDATE()),出生时间),GETDATE())) <= 10;
SELECT TOP 10 * FROM TB WHERE DATEDIFF(DAY,GETDATE(),出生时间)>0 ORDER BY 出生时间 ASC
2
SELECT TOP 1 * FROM TB WHERE DATEDIFF(DAY,GETDATE(),出生时间)<0 ORDER BY 出生时间 DESC
select * from base_user where datediff(day,cast(left(convert(varchar(10),getdate(),120),4) + right(convert(varchar(10),birthday,120),6) as datetime),getdate()) <=10
--指今天之后的十天
select * from base_user where datediff(day,getdate(),cast(left(convert(varchar(10),getdate(),120),4) + right(convert(varchar(10),birthday,120),6) as datetime)) <=10
--指今天之前之后的各十天
select * from base_user where abs(datediff(day,getdate(),cast(left(convert(varchar(10),getdate(),120),4) + right(convert(varchar(10),birthday,120),6) as datetime))) <=10
DECLARE @T TABLE (人员编号 INT,出生时间 DATETIME)
INSERT INTO @T
SELECT 1,'1980-07-01' UNION ALL
SELECT 2,'1983-08-26' UNION ALL
SELECT 3,'1982-10-02' UNION ALL
SELECT 4,'1981-07-22'--SQL查询如下:SELECT *,DATEADD(year,DATEDIFF(year,出生时间,GETDATE()),出生时间) FROM @T
WHERE ABS(DATEDIFF(day,DATEADD(year,DATEDIFF(year,出生时间,GETDATE()),出生时间),GETDATE())) <= 10;SELECT TOP 1 * FROM @T
WHERE DATEADD(year,DATEDIFF(year,出生时间,GETDATE()),出生时间) < GETDATE()
ORDER BY 出生时间 DESC;
分数每次提问就这么点 还不结。。BS